Regex Perl中的/^和/i是什么?
最近我下载了一个源代码(LevBot),然后我看到这一行:Regex Perl中的/^和/i是什么?,regex,perl,Regex,Perl,最近我下载了一个源代码(LevBot),然后我看到这一行: } elsif($text =~ /^slaps $levbot_nick/i) { 但是/^和/i做什么呢 为什么要使用它们 我想这是正则表达式,对吗?是的。请参阅文档。简而言之,/^匹配行首,而/i表示它不区分大小写。是。请参阅文档。简而言之,/^匹配行的开头,而/i表示它不区分大小写。这是一个正则表达式 /^slaps $levbot_nick/i /^意思是以开始(实际上是^单独) /我的意思是忽略案例(在//之后我独自
} elsif($text =~ /^slaps $levbot_nick/i) {
- 但是
和/^
做什么呢/i
- 为什么要使用它们
我想这是正则表达式,对吗?是的。请参阅文档。简而言之,
/^
匹配行首,而/i
表示它不区分大小写。是。请参阅文档。简而言之,/^
匹配行的开头,而/i
表示它不区分大小写。这是一个正则表达式
/^slaps $levbot_nick/i
/^意思是以开始(实际上是^单独)
/我的意思是忽略案例(在//之后我独自一人)
第一个和最后一个/斜杠是正则表达式的边界
/^slaps $levbot_nick/i
/^意思是以开始(实际上是^单独)
/我的意思是忽略案例(在//之后我独自一人)
第一个和最后一个/斜杠是正则表达式的边界
/i
忽略字母的大小/^
行首/i
忽略字母的大小- 表示正则表达式开始的分隔符(字符
不是正则表达式的一部分)/
匹配行首^
正则表达式结尾的分隔符(不是正则表达式的一部分)/
使正则表达式不区分大小写的标志i
Globalg
点匹配新行字符s
Extended-忽略模式中的空白并允许注释x
多行模式m
- 表示正则表达式开始的分隔符(字符
不是正则表达式的一部分)/
匹配行首^
正则表达式结尾的分隔符(不是正则表达式的一部分)/
使正则表达式不区分大小写的标志i
Globalg
点匹配新行字符s
Extended-忽略模式中的空白并允许注释x
多行模式m
- 两侧的
标记图案的开始和结束/
- 模式开头的
表示“仅在字符串开头匹配此项,而不匹配其他项。”^
- 模式结束后的
是一个修饰符,它表示“匹配时不区分大小写”,因为默认值区分大小写i
- 两侧的
标记图案的开始和结束/
- 模式开头的
表示“仅在字符串开头匹配此项,而不匹配其他项。”^
- 模式结束后的
是一个修饰符,它表示“匹配时不区分大小写”,因为默认值区分大小写i
/^
匹配行首
/i
表示不区分大小写的搜索 /^
匹配行首
/i
表示不区分大小写的搜索 Perl中的此语法受awk的/xxx/模式匹配功能启发。Perl中的此语法受awk的/xxx/模式匹配功能启发
在您的例子中,匹配模式是从slaps和levbot_nick变量中的值开始的。请看
perldoc perlrequick
,了解Perl中正则表达式的温和介绍。这是一个大课题,但这会让你开始。如果您要学习Perl,请从学习Perl()开始。这是一个大课题,但这会让你开始。如果要处理Perl,请从学习Perl()开始。这是一个细微但重要的区别。我不懂Perl,我也不知道其中的区别-你能解释一下/给出一个链接吗?斜杠里的东西是真正的“正则表达式”。斜杠仅指示表达式的开始和停止位置,但不是实际表达式的一部分。@Amarghosh:正则表达式是您要匹配的模式。匹配运算符是告诉Perl解释器的语法:这里有一个正则表达式。在Perl中,匹配运算符通常在开始和结束处由“/”分隔,但您可以使用分隔符(例如,m{^foo}
)。有关详细信息,请参阅perldoc perlop中的“Regexp报价类运算符”一节。不过,再看看阿马戈什的回答,我自己也不确定布赖恩反对什么。Amarghosh没有说/
是正则表达式的一部分;他说这标志着正则表达式的开始。对我来说,这似乎很合理。嗯,/启动匹配操作符,而不是正则表达式。这是一个细微但重要的区别。我不懂Perl,我也不知道其中的区别-你能解释一下/给出一个链接吗?斜杠里的东西是真正的“正则表达式”。斜杠只指示表达式的开始和停止位置,但不是实际表达式的一部分。@Amarghosh:正则表达式是