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

Match word "A". If "B" is next word, match too

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

示例:

string = "12 boxes net wt 1.oz 3.6g" #Must returns "net wt"

string = "12 boxes net 1.oz 3.6g" #Must returns "net"

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

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

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

您尝试的模式 net([,.\s]*?)(wt?) 从字符 class 捕获非贪婪匹配,然后使用 [=14] 将 w 与可选的 t 匹配=] 只使 w 成为强制性的并且可能也匹配 netwnet w

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

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

Regex demo