我在python中有正则表达式匹配问题我有一个字符串如下:
test_str = ("ICD : 12123575.007787. 098.3,\n"
"193235.1, 132534.0, 17707.1,1777029, V40‚0, 5612356,9899\n")
Run Code Online (Sandbox Code Playgroud)
我的正则表达式有两个主要组绑定在一起|,正则表达式如下:
regex = r"((?<=ICD\s:\s).*\n.*)|((?<=ICD\s).*)"
Run Code Online (Sandbox Code Playgroud)
让我们打电话给他们(A | B).哪里A = ((?<=ICD\s:\s).*\n.*)和B = ((?<=ICD\s).*).根据文档的 |工作方式,如果A匹配,它将不会进一步B.
现在我的问题是,当我使用上面提到的正则表达式test_str.它匹配B但不适合A.但是如果我A只用正则表达式搜索(即((?<=ICD\s:\s).*\n.*)),那么test_string它与正则表达式匹配A.所以我的问题是,为什么A|B正则表达式与组不匹配A并停止.以下是我的python代码:
import re
regex = r"((?<=ICD\s:\s).*\n.*)|((?<=ICD\s).*)"
test_str = ("ICD : 12123575.007787. 098.3,\n"
"193235.1, 132534.0, 17707.1,1777029, V40‚0, 5612356,9899\n")
matches = re.search(regex, test_str)
if …Run Code Online (Sandbox Code Playgroud)