簡體   English   中英

匹配正則表達式中來自后面的第一個匹配項

[英]Match first occurrence from back in regex

我必須在“ JJ”之間匹配字符串。 以及第二個出現在后面的“,”。

例如:

In Mackintosh v. Watkins (1904) 1 C L J 31, Brett and Mookerjee, JJ.

所需的輸出: Brett and Mookerjee

目前,我正在使用的匹配第一個“,”的JJ。

我的模式:

",.*.[^,]*JJ\b"

您可以使用環視或捕獲組。

  • 展望解決方案

     (?<=, )[^,]*(?=,[^,]*JJ\\b) 
    • (?<=, )向后看,檢查字符串是否以,開頭
    • (?=,[^,]*JJ\\b)向前看。 檢查字符串是否后跟,然后檢查,JJ以外的其他字符

    正則表達式演示

  • 捕獲組

     ,([^,]*),[^,]*JJ\\b 

    正則表達式演示

    在這里,捕獲組1將包含字符串Brett and Mookerjee

使用捕獲組。

Matcher m = Pattern.compile(",\\s*([^,]+),[^,]*\\bJJ\\b").matcher(s);
if(m.find())
{
System.out.println(m.group(1));
}

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM