[英]Java regular expression(grouping)
我嘗試編寫一個正則表達式來匹配條件表達式,例如:
a!=2 1+2<4 f>=2+a
我嘗試提取運算符。 我當前的正則表達式是“。+([!= <>] +)。+”
但是問題在於,匹配器始終嘗試匹配組中可能的最短字符串。
例如,如果表達式是a!= 2,則group(1)是“ =”,而不是“!=”,這是我期望的。
那么我該如何修改此正則表達式以實現我的目標呢?
你想匹配的東西包圍着一個操作符是不是運營商。
您定義的運算符:[!= <>]
相反,不是運算符:[^!= <>]
然后嘗試:
[^!=<>]+([!=<>]+)[^!=<>]+
嘗試這個:
.+(!=|[=<>]+).+
您的正則表達式匹配單個!
因為它在[]
放在方括號中的所有內容都將匹配一個字符,這意味着[!=<>]
可以匹配: !, =, <, >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.