我刚开始学习python中的正则表达式模块,我被要求解释一个有趣的正则表达式序列。
/^[a-z0-9_-]{3,16}$/
我可以解释两个正斜杠中的代码,它们搜索包含连字符和下划线的字母数字用户名,并且至少包含3个,最多16个数字或字符。
现在我的问题是,两个正斜杠是什么意思?我尝试了网络,似乎大多数教程都有反斜杠的解释但不是正斜杠。请指教。感谢。
答案 0 :(得分:2)
正斜杠用作分隔符。它们仅用于某些类型(例如Perl和JavaScript),如果您愿意,通常可以更改为分隔符。更改分隔符将改变需要转义的内容(如果有的话)。
使用我今天早些时候写的另一个问题的正则表达式来看这个sed语句:
sed -E 's/OldUtility.getList.([^)]*)\)([\)]*)/\1\2.getList()/g'
在这种情况下:
s
代替/
第一个斜杠/
,则需要对其进行转义。如果你有足够的/
需要转义,最好切换到不同的分隔符,如果可能的话。/
第二个斜杠\1\2.getList()
/
第三个也是最后一个斜杠g
for global。答案 1 :(得分:0)
斜杠代表正则表达式的开头和结尾。这是Perl表达其正则表达式的典型代表:
/<my_regex_here>/
在Perl 中,您可以指定各种选项,例如:
s/<my_regex>/<replaceWith>/
Perl当然是专为正则表达式设计的语言,所以看到人们使用类似Perl的语法来讨论正则表达式是很常见的。
答案 2 :(得分:0)
正斜杠只是一个分隔符,用于分隔正则表达式的开头和结尾。它是正斜杠而不是其他角色的原因主要是惯例。
例如,你可以在vim中定义一个正则表达式,带有问号而不是传统的斜杠:
:S [A-Z0-9 _-] ??克