2012-02-10 118 views
3

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

(,|$) 

[,$] 

我基本上是寻找一个逗号或最终的线。

回答

7

第一个指的是逗号或end_of_line

第二装置逗号或美元符号类内部

Generaly特殊字符失去其特殊的意义。

因此,对于您的问题:

我基本上是寻找一个逗号或最终的线。

使用第一个(,|$)

0

号的方括号将把$为字符,从而消除由于行标记结束的地位。

1

我认为,当你把$到支架它被认为是像美元字符和线条

还没结束,你会发现这里的更多信息: http://www.regular-expressions.info/charclass.html

提取物:

字符类内部的元字符

请注意,中唯一的特殊字符或元字符字符类是右括号(]),反斜杠(), 插入符号(^)和连字符( - )。通常的元字符在字符类内部是正常的 字符,并且不需要被 反斜杠转义。要搜索星号或加号,请使用[+ *]。你的正则表达式 工作正常,如果你逃避字符 类中的常规元字符,但这样做会显着降低可读性。