根据 python 文档,竖线文字用作“或”运算符。它匹配 A|B,其中 A 和 B 可以是任意 RE。
例如,如果正则表达式如下: ABC|DEF,它匹配这样的字符串:
“ABC”、“DEF”
但是如果我想匹配如下字符串怎么办:
“ABCF”、“ADEF”
也许我想要的是类似A(BC)|(DE)F 的东西,这意味着:
- 首先匹配“A”,
- 然后是字符串“BC”或“DE”,
- 然后字符“F”。
我知道上面的表达方式不对,因为括号在正则表达式中有其他含义,只是为了表达我的想法。
谢谢!
最佳答案
这些将起作用:
A(BC|DE)F
A(?:BC|DE)F
区别在于生成的组数:第一个为 1,第二个为 0。
你的将匹配 ABC
或 DEF
,有 2 组,一组不包含任何内容,另一组包含匹配的片段(BC
或 DE
).
关于python - 竖线文字如何确定python中的正式正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988617/