以下两个正则表达式在功能上是否相同?我问,因为当我交换它们时会得到不同的结果,所以我想我知道答案是它们不相同。但是,我不明白为什么。
(,|$)
和
[,$]
我基本上是在寻找逗号或行尾。
答案 0 :(得分:7)
第一个意味着逗号或end_of_line
第二个意思是逗号或美元符号
一个班级中的一般特殊字符失去了它们的特殊含义。
所以,对于你的问题:
我基本上是在寻找逗号或行尾。
使用第一个(,|$)
答案 1 :(得分:1)
我认为当你把$加入括号时,它被认为是美元字符而不是行尾
您将在此处找到更多信息: http://www.regular-expressions.info/charclass.html
提取:
角色类内的元字符
请注意,里面只有特殊字符或元字符 字符类是结束括号(]),反斜杠(), 插入符号(^)和连字符( - )。通常的元字符是正常的 字符类中的字符,不需要转义 反斜杠。要搜索星号或加号,请使用[+ *]。你的正则表达式会 如果您转义角色内的常规元字符,则可以正常工作 类,但这样做会大大降低可读性。
答案 2 :(得分:0)
没有。方括号将$视为字符,从而将其状态删除为行结束标记。