//向后匹配 String a = "I paid $90 for 10 oranges, 12 pears and 8 apples. I saved $5 on "; Pattern p = Pattern.compile("(?<=\\$)\\d+"); Matcher m = p.matcher(a); while (m.find ()) { String group = m.group (); System.out.println (group);
[编辑] 无捕获组和命名组 精心设计的 REs 也许会用很多组,既可以捕获感兴趣的子串,又可以分组和结构化 RE 本身.在复杂的 REs 里,追踪组号变得困难.有两个功能可以对这个问题有所帮助.它们也都使用正则表达式扩展的通用语法,因此我们来看看第一个. Perl 5 对标准正则表达式增加了几个附加功能,Python 的 re 模块也支持其中的大部分.选择一个新的单按键元字符或一个以 "\" 开始的特殊序列来表示新的功能,而又不会使 Perl 正则表达式与标准正则表达式产生混乱是有难度
在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作. 如果特定条件下需要改变定界符,如改为{},[]等.需要加入m,m{},m[]等. m%^http://% 默认的模式匹配对象是自动化变量$_,如果要指定匹配对象,可以使用绑定操作符=~. my $some_other = "I have a Dream"; if($some_other =~ /\brub/); ##用右侧的模式对左侧的对象进行匹配. 模式匹配修饰符: /i表示大小写无关的匹配. /s表