在我的Java代码中应用正则表达式时遇到问题。
我的文本字符串是这样的(字符串MyString的)正则表达式 - 从Java中的String中提取信息
name: Abc Def;
blah: 1 2 3;
second name: Ghi;
我需要提取的名称信息(美国广播公司防守)。名称可以包含1个字以上的字符串。所有属性(名称,等等,第二个名字)与开头部分的空格间隔
我试图使用的代码是
String patternStr = "\\s{2,}name:\\s([\\w ]*\\w+);";
Matcher matcher = Pattern.compile(patternStr).matcher(myString);
if (matcher.matches())
System.out.println(matcher.group(1));
我正则表达式似乎与online tools(正则表达式工作正常:\ s {2,} name:\ s([\ w] * \ w +);)但是当我将它移植到java代码中时,它根本不起作用。任何想法我失踪?
非常感谢
编辑: 如果我使用matcher.find(),它工作正常。
谢谢你的正则表达式改进,但我认为问题是当我调用matcher.matches()。如果我使用matcher.find(),它工作正常。 – mickthompson 2009-10-19 15:11:06