这两个正则表达式在功能上是否相同?

时间:2012-02-10 16:49:14

标签: regex

以下两个正则表达式在功能上是否相同?我问,因为当我交换它们时会得到不同的结果,所以我想我知道答案是它们不相同。但是,我不明白为什么。

(,|$)

[,$]

我基本上是在寻找逗号或行尾。

3 个答案:

答案 0 :(得分:7)

第一个意味着逗号或end_of_line

第二个意思是逗号或美元符号

一个班级中的一般特殊字符失去了它们的特殊含义。

所以,对于你的问题:

  

我基本上是在寻找逗号或行尾。

使用第一个(,|$)

答案 1 :(得分:1)

我认为当你把$加入括号时,它被认为是美元字符而不是行尾

您将在此处找到更多信息: http://www.regular-expressions.info/charclass.html

提取:

  

角色类内的元字符

     

请注意,里面只有特殊字符或元字符   字符类是结束括号(]),反斜杠(),   插入符号(^)和连字符( - )。通常的元字符是正常的   字符类中的字符,不需要转义   反斜杠。要搜索星号或加号,请使用[+ *]。你的正则表达式会   如果您转义角色内的常规元字符,则可以正常工作   类,但这样做会大大降低可读性。

答案 2 :(得分:0)

没有。方括号将$视为字符,从而将其状态删除为行结束标记。