首页 > 代码库 > perl学习(二)正则表达式
perl学习(二)正则表达式
模式分组:
/fred+/会匹配freddd这样的
/(fred)+/会匹配fredfredfred这样的
/(fred)*/则会匹配abcdef任意的
圆括号同时也使得重新使用某些字符串成为可能。反向引用来引用圆括号中的模式所匹配的文字,这个行为我们称为捕获组。
反向行为的写法是在反斜线后面接上数字编号,比如\1, \2这样,对应的数字表示对应顺序的捕获组。
$_ = "abba";
if (/(.)\1/) { # 匹配 ‘bb‘
print "It matched same character next to itself!\n";
}
$_ = "yabba dabba doo";
if (/y(....) d\1/) { # 匹配 ‘yabba dabba‘
print "It matched same after y and d!\n";
}
$_ = "yabba dabba doo";
if (/y(....) c\1/) { # 不匹配
print "It matched same after y and d!\n";
}
$_ = "yabba dabba doo";
if (/y((.)(.)\3\2) d\1/) { # 匹配 ‘yabba dabba‘
print "It matched!\n";
}
反向引用用\g{N}更明晰
$_ = "aa11bb";
if (/(.)\g{1}11/) { # 匹配 ‘aa11‘
print "It matched:aa11!\n";
}
perl学习(二)正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。