python正则判断语句(?(id/name)yes-pattern|no-pattern) 失效?

testtext2="""车找人【路线】万州↔重庆【时间】\xa0 今晚7-9出发【电话】1389691****
"""
testreg=re.compile(r"(?P<path>(?P<path1>(?<=【路线】))(?(path1).+?(?=【时间】)|no-pattern))")
print(re.findall(testreg,testtext2))

以下代码目的是提取出“万州↔重庆”,可是“no-pattern”(即备选正则)完全无效???

testreg=re.compile(r"(?P<path>(?P<path1>(?<=【路线】))(?(path1).+?(?=【时间】)|.*))")

在此举例,即使使用 .* 结果依然为空,请问问题出在哪里呢?

阅读 3.1k
1 个回答

<path1> 捕获组只有一个前瞻断言,匹配的规则为空,它肯定是匹配成功啊,no-pattern自然是从来不会执行的。

PS:我有些不明白,你为什么要用条件捕获,没看出来使用它的必要性在哪儿。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题