Python 正斜杠的正则表达式含义/
我刚刚开始学习python中的正则表达式模块,我被要求解释一个有趣的正则表达式序列Python 正斜杠的正则表达式含义/,python,regex,Python,Regex,我刚刚开始学习python中的正则表达式模块,我被要求解释一个有趣的正则表达式序列 /^[a-z0-9_-]{3,16}$/ 我可以解释两个正斜杠中的代码,它们搜索的用户名是字母数字,包括连字符和下划线,并且至少有3个,最多16个数字或字符 现在我的问题是,这两个前斜杠是什么意思?我在网上试过,似乎大多数教程都解释了倒斜杠,但没有正斜杠。请告知。谢谢。斜线代表正则表达式的开始和结束。这是Perl表达正则表达式的典型方式: /<my_regex_here>/ // 在Perl中,
/^[a-z0-9_-]{3,16}$/
我可以解释两个正斜杠中的代码,它们搜索的用户名是字母数字,包括连字符和下划线,并且至少有3个,最多16个数字或字符
现在我的问题是,这两个前斜杠是什么意思?我在网上试过,似乎大多数教程都解释了倒斜杠,但没有正斜杠。请告知。谢谢。斜线代表正则表达式的开始和结束。这是Perl表达正则表达式的典型方式:
/<my_regex_here>/
//
在Perl中,您可以指定各种选项,例如:
s/<my_regex>/<replaceWith>/
s///
Perl当然是一种专门为正则表达式设计的语言,因此人们经常使用类似Perl的语法谈论正则表达式。正斜杠只是一个分隔符,用于分隔正则表达式的开始和结束。它是正斜杠而不是其他字符的原因主要是惯例 例如,您可以在vim中定义一个正则表达式,如下所示,用问号代替传统的斜杠: :s?[a-z0-9_-]g
正斜杠用作分隔符。它们只在某些风格中使用(例如Perl和JavaScript),如果您选择,通常可以更改为分隔符。更改分隔符将更改需要转义的内容(如果有) 关于另一个问题,请参见我今天早些时候写的带有正则表达式的sed声明:
sed-E的/OldUtility.getList([^]*)\)([\)]*)/\1\2.getList()/g'
在这种情况下:
替换s
第一个斜杠/
- 正则表达式。如果正则表达式需要一个
,则需要对其进行转义。如果您有足够的/
需要转义,如果可能,最好切换到其他分隔符/
第二个斜杠/
- 然后是替换:
\1\2.getList()
第三个也是最后一个斜杠/
- 最后,还有一个修饰符:
for globalg
/
字符;其他一些语言使用它作为分隔符。^我们不应该回答这些问题,而是标记它们…@Omarjmh标记的原因是什么?Bc是aduplicate@Omarjmh傻瓜在哪里?质量决定了关闭哪个版本。您链接到的问题是特定于JS的。如果你读了我的答案或其他答案,这是一个一般性的问题,因为这种行为在许多口味之间是共享的。“我认为这不是一个足够近的骗局。”奥马尔,谢谢。我认为这个问题至少对未来的人有点用处,不像我看到的(有时也会回答的)许多“我可以用haz正则表达式”的问题。