簡體   English   中英

regex.match組中的需要值

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

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