开发者

regular expressions - same for all languages?

开发者 https://www.devze.com 2022-12-14 20:37 出处:网络
is the regexp the same between languages? for example. if i want to use it in javascript, would i have to search for regexp for javascript specifically. cause i got 开发者_运维知识库some cheat sheets

is the regexp the same between languages?

for example. if i want to use it in javascript, would i have to search for regexp for javascript specifically. cause i got 开发者_运维知识库some cheat sheets. it just says regular expression.

i wonder if i could use this on all languages, php, javascript and so on.


The basics are mostly the same but there are some discrepancies between which engine powers the language, PHP and JavaScript differ since PHP uses PCRE (Perl Compatible Regular Expressions).

PHP also has the POSIX-compatible regex engine (ereg_* functions), but that is deprecated.

If you don't already use it, I suggest you try RegexBuddy. It can convert between several Regex engines.

You can find alternatives for RegexBuddy on Mac here.


You might want to start out by looking here. That's my Bible when I do regexping!

Now, regex should be the same everywhere, at least the fundamentals, however there are cases where it differs from compiler to compiler (or interpreter if you will).

Those could be how you search for a specific pattern, let's take \w as an example, that's: any alphanumeric or underscore character in c# but the pattern in javascript might be different.

When you come to a special case like this, you might want to revise the above provided link.


Regular expression synax varies slightly between languages but for the most part the details are the same. Some regex implementations support slightly different variations on how they process as well as what certain special character sequences mean.

Google is your best friend. Google for regex in the language of your choice.


One of the biggest variations in regex is how special characters are escaped / interpreted.

For instance, grep, vim and perl regexs differ in how to handle things like ( ) for grouping / capturing a pattern for back referencing in search & replace. IIRC, Perl uses them straight while grep and vim require them to be escaped.

Also, Perl regex may support more features than earlier regex engines. regex's that would have been simple in Perl were a major Pita in grep.

I'm not completely sure if this is a correct way to sum it up, but there are basically two major classes of regex - Posix ( grep and similar tools ) and Perl compatible ( with minor variations ).

One tool I've found useful is The Regex Coach - interactive regular expressions.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号