如何读取python正则表达式(?:^ |[b./-])[Tt]est
如果您能帮助我阅读/解释此常规express(Python语法),我将不胜感激: (这是NoTest在查找测试文件时作为过滤器的默认重用)。 编辑: 到目前为止,我的理解是: open-paren问号冒号stuff-close-paren是一个“扩展”,意味着从匹配结果的字符串中排除该内容。从我的观点来看,这意味着我可以忽略它(?) 最后一部分“[Tt]est”是指测试或测试 其余的意思是模糊的。插入符号表示“匹配字符串的开头”,竖条表示或,括号中的字符(b、下划线、句点、斜杠、减号)是可选的匹配。换句话说,匹配字符串的开头或5个指定字符中的一个,后跟Test或Test?这意味着字符串“bTest”和“/Test”将匹配(它们显然不匹配) 感谢您在改进我对模式的理解方面给予的帮助如何读取python正则表达式(?:^ |[b./-])[Tt]est,python,regex,string,Python,Regex,String,如果您能帮助我阅读/解释此常规express(Python语法),我将不胜感激: (这是NoTest在查找测试文件时作为过滤器的默认重用)。 编辑: 到目前为止,我的理解是: open-paren问号冒号stuff-close-paren是一个“扩展”,意味着从匹配结果的字符串中排除该内容。从我的观点来看,这意味着我可以忽略它(?) 最后一部分“[Tt]est”是指测试或测试 其余的意思是模糊的。插入符号表示“匹配字符串的开头”,竖条表示或,括号中的字符(b、下划线、句点、斜杠、减号)是可选的
(?:…)
是非捕获组;与(…)
相同,但不会产生捕获的组值。它限制了|
备用组中包含的内容。该组要么匹配字符串的开头,要么匹配字符b
、\u
、
、/
或-
中的一个
因此,表达式为输入文本生成匹配项,这些文本在一行开头包含Test
或Test
,或者如果前面直接是b
,则匹配下划线、点、斜线或破折号
'bTest'
和/Test
不匹配:
b
令人惊讶,所以我看了一下。文档缺少反斜杠,匹配的不是b
,而是\b
:
r'(?:^|[\b_\.%s-])[Tt]est' % os.sep)
\b
是单词边界,在test
或test
之前不是单词字符。这很可能是一个bug<代码>\b不能是字符类的一部分,那里的\b
无效。相反,它将被视为退格字符
这个问题发生在3年半以前。非捕获组(?:…)对正则表达式的匹配没有影响
(?:^|[b_./-])[Tt]est
…因此在一行的开头,它将匹配:
test
Test
或文本中任意位置的以下选项之一:
bTest
btest
_Test
_test
.Test
.test
/Test
/test
-Test
-test
它应该是
(?:\b.[./-])[Tt]est
,我相信……不,应该是(?:\b.[u124;][Tt]est
,因为\b
已经解释了点、破折号或斜线。你是手工创建的,还是使用工具创建的?如果它是由一个工具创建的,它看起来非常有用。@SteinarLima-debuggex.com
test
Test
bTest
btest
_Test
_test
.Test
.test
/Test
/test
-Test
-test