正则表达式中使用的“控制字符”在正则表达式解析器的不同实现之间有很大差异(例如,Ruby,Java,C#,sed等中的正则表达式)。
例如,在Ruby中,\D
表示not a digit
;它在Java,C#和sed中是否意味着相同?
我想我要问的是,所有正则表达式解析器都支持正则表达式的“标准”吗?
如果没有,是否应该学习和掌握一些共同的子集(然后在遇到它们时学习解析器特定的子集)?
答案 0 :(得分:8)
请参阅regular-expressions.info上的基本语法列表。
和a comparison不同的“味道”。
答案 1 :(得分:1)
有一个非常简单的共同核心。它对应于原始软件工具(如ed,grep,sed和awk)中实现的正则表达式。这是值得学习的,因为其他格式都是这一格式的超集。†
. match any character
[abc] match a, b, or c
[^abc] match a character other than a, b, or c
[a-c] match the range from a to c
^ match the begininning of the line
$ match the end of the line
* match zero or more of the preceding character
\(...\) group for use as a back-reference
†我遗漏了Posix括号表达式,因为没有人使用它们而且它们不在子集中。除经典表达式外,parens默认为magic。功能