正斜杠的正则表达式含义/

时间:2016-04-06 00:29:31

标签: python regex

我刚开始学习python中的正则表达式模块,我被要求解释一个有趣的正则表达式序列。

/^[a-z0-9_-]{3,16}$/

我可以解释两个正斜杠中的代码,它们搜索包含连字符和下划线的字母数字用户名,并且至少包含3个,最多16个数字或字符。

现在我的问题是,两个正斜杠是什么意思?我尝试了网络,似乎大多数教程都有反斜杠的解释但不是正斜杠。请指教。感谢。

3 个答案:

答案 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 _-] ??克