python - 匹配单词 "A"。如果 "B"是下一个单词,则也匹配

标签 python regex pattern-matching

在 Python 中使用正则表达式,我想从字符串中获取单词“net”,如果下一个单词“wt”,也获取

示例:

string = "12 盒净重 1.oz 3.6g"#必须返回“净重”

string = "12 盒净重 1.oz 3.6g"#必须返回“net”

“net”和“wt”之间可以是“.” “,”或空格

我使用了这个正则表达式,但在第二个示例中不起作用

pat = r'net([,.\s]*?)(wt?)'

最佳答案

您尝试的模式net([,.\s]*?)(wt?)从字符类中捕获非贪婪匹配,然后匹配w 带有可选的 t,使用 ? 仅使 w 成为强制,并且也可能匹配 netwnet w

您可以将字符类放在括号内,并使整个部分可选,在其后面放置 ?

\bnet(?:[,. ]wt)?\b

Regex demo

关于python - 匹配单词 "A"。如果 "B"是下一个单词,则也匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62197454/

相关文章:

c++ - Boost:regex_search - 匹配括号之间的字符串

regex - sed 搜索并替换 html 标签

regex - 电子邮件域的 HTML 输入模式

pattern-matching - 从 case 语句证明两个值相等

xslt - 默认情况下打印XSLT 1.0文本节点

python - 升级到 Django 1.11.4 ImportError

php - preg_replace 用奇怪的字符替换引号?

python - 如何指定spaCy根据句号识别句子

python - 有没有办法修剪/去除 pandas 数据帧的多列中的空格?

python - Python 中 matplotlib 的 (x,y) 绘图替代方案是什么?