[英]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|SELECT|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.