我必须匹配“JJ”之间的字符串。从后面第二次出现“,”。
e.g:
In Mackintosh v. Watkins (1904) 1 C L J 31, Brett and Mookerjee, JJ.
所需的输出:Brett and Mookerjee
目前我使用的是第一个“,”与JJ匹配。
我的模式:
",.*.[^,]*JJ\b"
答案 0 :(得分:2)
您可以使用环顾四周或捕捉群组。
展望未来的解决方案
(?<=, )[^,]*(?=,[^,]*JJ\b)
(?<=, )
回顾一下,检查字符串是否前面有,
(?=,[^,]*JJ\b)
展望未来。检查字符串是否后跟,
,然后检查,
和JJ
捕获goups
,([^,]*),[^,]*JJ\b
此处捕获组1将包含字符串Brett and Mookerjee
答案 1 :(得分:0)
使用捕获组。
Matcher m = Pattern.compile(",\\s*([^,]+),[^,]*\\bJJ\\b").matcher(s);
if(m.find())
{
System.out.println(m.group(1));
}