Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取python正则表达式(?:^ |[b./-])[Tt]est_Python_Regex_String - Fatal编程技术网

如何读取python正则表达式(?:^ |[b./-])[Tt]est

如何读取python正则表达式(?:^ |[b./-])[Tt]est,python,regex,string,Python,Regex,String,如果您能帮助我阅读/解释此常规express(Python语法),我将不胜感激: (这是NoTest在查找测试文件时作为过滤器的默认重用)。 编辑: 到目前为止,我的理解是: open-paren问号冒号stuff-close-paren是一个“扩展”,意味着从匹配结果的字符串中排除该内容。从我的观点来看,这意味着我可以忽略它(?) 最后一部分“[Tt]est”是指测试或测试 其余的意思是模糊的。插入符号表示“匹配字符串的开头”,竖条表示或,括号中的字符(b、下划线、句点、斜杠、减号)是可选的

如果您能帮助我阅读/解释此常规express(Python语法),我将不胜感激:

(这是NoTest在查找测试文件时作为过滤器的默认重用)。

编辑:

到目前为止,我的理解是: open-paren问号冒号stuff-close-paren是一个“扩展”,意味着从匹配结果的字符串中排除该内容。从我的观点来看,这意味着我可以忽略它(?)

最后一部分“[Tt]est”是指测试或测试

其余的意思是模糊的。插入符号表示“匹配字符串的开头”,竖条表示或,括号中的字符(b、下划线、句点、斜杠、减号)是可选的匹配。换句话说,匹配字符串的开头或5个指定字符中的一个,后跟Test或Test?这意味着字符串“bTest”和“/Test”将匹配(它们显然不匹配)

感谢您在改进我对模式的理解方面给予的帮助

(?:…)
是非捕获组;与
(…)
相同,但不会产生捕获的组值。它限制了
|
备用组中包含的内容。该组要么匹配字符串的开头,要么匹配字符
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