编写正则表达式的语法是否标准化?也就是说,如果我在C ++中编写正则表达式,它将在Python或Javascript中工作而无需任何修改。
答案 0 :(得分:8)
答案 1 :(得分:0)
简单的正则表达式,大多数是的。但是,在各种编程语言中,存在差异。
答案 2 :(得分:0)
不,这是我想到的一些差异:
JavaScript允许您编写内联正则表达式(\
中的\s
不需要转义为\\s
),由/
字符分隔。您可以在结束/
后指定标志。 JS还有RegExp
构造函数,它将转义字符串作为第一个参数,将可选标志字符串作为第二个参数。
/^\w+$/i
和new RegExp("^\\w+$", "i")
有效且相同。
在PHP中,您可以将正则表达式字符串括在您选择的任意分隔符内(不确定可以用作分隔符的超级字符集)。你应该再次逃避反斜杠。
"|[0-9]+|"
与#[0-9]+#
Python和C#支持原始字符串(不限于正则表达式,但对编写正则表达式非常有帮助),可以让你在正则表达式中写入未转义的反斜杠。
"\\d+\\s+\\w+"
可以在Python中编写为r'\d+\s+\w+'
,在C#中编写为@'\d+\s+\w+'
\<
,\A
等分隔符不受全球支持。
DOTALL
标记。