我试图在python中搜索正则表达式中的一些模式。
我们知道如果我们使用模式' [A-Za-z] +' ,则意味着找到包含大写字母A到Z的字符序列或小写a到z。 所以我的单行代码(后跟答案)是,
var ic = [[[123,231,12],[56,43,124]],[[78,152,76],[64,132,200]]]
当我尝试其他模式' [[AZ] [az]] +' 时,它返回一个空列表,单行代码如下,
var ig = [[[122,122,122],[74,74,74]],[[102,102,102],[132,132,132]]]
那么,当我在一个字符集中使用两个序列时,会创建什么样的模式? 请指导。
答案 0 :(得分:6)
引擎会将[[A-Z][a-z]]+
视为:
[[A-Z]
作为允许任何大写字母(A-Z)或[
的第一个字符类。可以将其视为[\[A-Z]
,而不是[
转义[a-z]
作为允许任何小写字母(a-z)]+
允许一个或多个]
因此它会匹配[b]
或Aa]
或Aa]]]]]]]
等,并且不会匹配您的字符串'这是我的区域!'
要进一步使用它,您可以尝试regex101 demo。
广场括号的嵌套:
为了更好地理解方括号的嵌套如何在正则表达式中起作用,请考虑另一个示例[[[ABC]]]
找到一个开头方括号(
[
)表示字符类的开头,然后所有后续的开方括号[
被视为已转义{{1直到遇到一个结束方括号\[
,表示字符类的结束。
要测试一下,请看一下这些例子:
]
与[[[ABC]]]
相同,后跟[\[ABC]
。示例]{2}
A]]
与[[[[ABC]]]]
相同,后跟[\[ABC]
。示例]{3}
[]]]
与[[[[[ABC]]]]]
相同,后跟[\[ABC]
。示例]{4}
希望这有帮助!