[英]Need value in regex.match group
我想匹配正則表達式,以便一組中的符號(+或-)和另一組中的數字。 該數字可能沒有任何符號(+或-)
例
[-] 87.90
[+] 87.78
(-) 87.90
(+) 87.78
89
-89.56
- 89.98
我用下面的正則表達式
^\W*(\-|\+|)\W*(\d+(\.\d+)?)
這樣我就在第1組中變得空了,如果我使用
^\W*(\-|\+)\W*(\d+(\.\d+)?)
那么第三個數字將不匹配。 簡而言之,我想將數字匹配(+或-)或不帶任何符號。
組1為空,因為\\W*
貪婪地匹配所有非單詞字符,即所有括號和符號。
您應該在模式中指定文字括號,並且字符類將是更自然的構造,以匹配+
或-
:
(?:\(?([-+])\)?)?\p{Zs}*(\d+(\.\d+)?)
請參閱regex演示 (如果需要完整的字符串匹配,請在模式的開頭使用^
,在模式的結尾使用$
)。
正則表達式匹配項:
(?:\\(?([-+])\\)?)?
-可選的非捕獲組( (?:...)
),它與(
可選,后面跟一個正負號(Group 1),然后是可選)
相匹配 \\p{Zs}*
-零個或多個空格符號 (\\d+(\\.\\d+)?)
-(組2)一個或多個數字,后跟一個可選的捕獲組(組3),該捕獲組與一個句點相匹配,后跟一個或多個數字。 結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.