我想标签是一个变量,它正在检查9eaf
- 但这是否存在Perl?在Perl中做什么=〜做什么?
在这里做什么“=〜”符号以及9eaf
做什么之前和之后有什么“/”字符?
if ($tag =~ /9eaf/)
{
# do something
}
请让我知道是否有人对这两个参数有任何线索。
我想标签是一个变量,它正在检查9eaf
- 但这是否存在Perl?在Perl中做什么=〜做什么?
在这里做什么“=〜”符号以及9eaf
做什么之前和之后有什么“/”字符?
if ($tag =~ /9eaf/)
{
# do something
}
请让我知道是否有人对这两个参数有任何线索。
=~
是测试正则表达式匹配的运算符。表达式/9eaf/
是一个正则表达式(斜杠//
是分隔符,是实际的正则表达式)。换句话说,测试是在说“如果变量$标签匹配正则表达式/ 9eaf/...”,并且如果存储在$tag
中的字符串连续包含那些字符,则按顺序在任何点都会发生此匹配。因此,这将是真正的字符串
9eaf
xyz9eaf
9eafxyz
xyz9eafxyz
和其他许多人,但不是字符串
9eaxxx
9xexaxfx
等等。请查阅'perlre' man page了解正则表达式的更多信息,或google“perl正则表达式”。
你的意思是,如果它之间有空间,它不起作用...例如... 9sssbt yyuuiihh 88880099 9eaf 888hhjjj nnmmmm。将这个字符串的上述逻辑? – Invictus 2012-04-04 21:07:03
不,'m //'是操作运算符测试正则表达式。 '=〜'只是告诉'm //'(和'///'和'tr //')要测试哪个变量。 –
ikegami
2012-04-04 21:53:08
不,'/ 9eaf /'不是正则表达式。 '/ 9eaf /'是匹配运算符。 9eaf是正则表达式。 – ikegami 2012-04-04 21:54:16
即一个匹配标量$tag
的检查(这大概是一个字符串)以正则表达式/9eaf/
,这仅仅是检查是否字符串"9eaf"
是$tag
子串。检出perldoc perlretut
。
你的意思是如果它之间有一个空格它不起作用...例如... 9sssbt yyuuiihh 88880099 9eaf 888hhjjj nnmmmm。将这个字符串的上述逻辑? – Invictus 2012-04-04 21:09:32
你为什么不自己尝试一下? – 2012-04-04 21:38:41
'=〜'运算符为binary binding operator,表示以下操作将搜索或修改左侧的标量。
对于匹配,缺省(未指定)运算符为'm'。
匹配运算符有一对字符指定正则表达式开始和结束的位置。最常见的是,这是'//'。
给Perl Re tutorial一读。
如果你想花几分钟在Perl中学习正则表达式,请看[perlrequick](http://perldoc.perl.org/perlrequick.html)。 – 2012-04-04 21:00:46
_Learning Perl_解释一切:) – 2012-04-04 23:38:47