正则表达式中的字符集使用[]指定。字符集匹配任何一个包含的字符。例如,[abc]将匹配“a”,“b”或“c”中的一个。
我发现Python和re2c正则表达式中的字符集之间可能存在差异。我知道两者都是一样的:
但我担心这些可能会有所不同:
你能解释一下Python和re2c字符集之间的区别吗?
答案 0 :(得分:1)
查看您提供的re2c手动链接,似乎re2c使用相同的语法,只是该语法的一个子集。
解决有关正则表达式语法的具体问题
需要在字符集内转义的字符。
您具体指的是哪些字符?
在字符集中放置文字
-
或^
的位置......
对于^
,除了开头应该做的任何地方,对于-
,除了中间的任何地方都应该这样做。
>>> import re
>>> match_literal_hyphen = "[ab-]"
>>> re.findall(match_literal_hyphen, "abc - def")
['a', 'b', '-']
>>> match_literal_caret = "[a^b]"
>>> re.findall(match_literal_caret, "abc ^ def")
['a', 'b', '^']
答案 1 :(得分:0)
我会逃避任何导致混淆的事情 -
/[][]/
匹配']'或'['1
/[[]]/
匹配'[]'
/[]]]/
匹配']]'
/[[[]/
匹配'['1}
/[]/
是一个无法匹配的'['错误