簡體   English   中英

正則表達式完全匹配字符串

[英]regex exact match the string

我在下面的字符串中使用正則表達式拆分,並在數組中獲取id,id,roduct_clinical_studies__rimr,product__rim,product__v。 這適用於大多數情況。 但是對於下面的字符串,因為臨床包含IN失敗了,我該如何精確匹配IN / SELECT等

 id IN (SELECT id FROM  product_clinical_studies__rimr  WHERE product__rim CONTAINS {{this.product__v}})


String[] parseString(String filterInString) {
    return filterInString.replaceAll("(?i)CONTAINS|IN|SELECT|FROM|WHERE|(this\\.)|[(){}=,]|(\\s{2,})", " ").
            replaceAll("\\s+", " ").split("\\s");
}

如果您不能通過空格識別,則將其運行兩次。 第一次通過所有唯一對象,第二次通過“ IN”。

您可以擺脫(?i)或在周圍添加單詞邊界
文字

(?i)\\b(?:CONTAINS|IN|SELECT|FROM|WHERE)\\b|(this\\.)|[(){}=,]|‌​(\\s{2,})

如果您需要匹配keyword/keyword/../..運行,則可能可行
以及

(?i)\\b(?:CONTAINS|IN|SELECT|FROM|WHERE)(?:/(?:CONTAINS|IN|SE‌​LECT|FROM|WHERE))*\\b‌​|(this\\.)|[(){}=,]|(‌​\\s{2,})

擴展

    (?i)
    \b 
    (?:
         CONTAINS
      |  IN
      |  SELECT
      |  FROM
      |  WHERE
    )
    (?:
         /
         (?:
              CONTAINS
           |  IN
           |  SELECT
           |  FROM
           |  WHERE
         )
    )*
    \b 
 |  ( this\. )                    # (1)
 |  [(){}=,] 
 |  ( \s{2,} )                    # (2)

暫無
暫無

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

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