python - 竖线文字如何确定python中的正式正则表达式?

标签 python regex

根据 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。

你的将匹配 ABCDEF,有 2 组,一组不包含任何内容,另一组包含匹配的片段(BCDE).

关于python - 竖线文字如何确定python中的正式正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988617/

相关文章:

python - numpy diff 奇怪的行为

python - Pandas DataFrame - 列出具有最低不同值的列

regex - 使用 Rust 的正则表达式箱时如何转义转义的正则表达式字符?

regex - 如何使用正则表达式解析可变长度命令行参数?

python - pandas 中的条件成对计算

python - 将列表中所有可能的对象配对

Python - 如何在大文件中搜索字符串

regex - 如何在 zgrep/zcat 命令中指定正则表达式?

javascript - 使用正则表达式从 JSON 中删除具有给定属性的对象

javascript - 正则表达式用 HTML 标签替换字符