[英]Decimal or integer with negative look behind
我有以下簡單的負面看法
(?<![Ø]\s*)
以下表達式匹配整數或小數,無論是否包含整數部分
([0-9]*(?:[.,][0-9]+)?)
第二個表達式匹配8 8.8 8,8 .8 ,88 etc..
我試圖結合2個表達式來忽略第二個表達式的整個匹配,以防它的前面是Ø
,所以我做了
(?<![Ø]\s*)([0-9]*(?:[.,][0-9]+)?)
和那些測試的價值
88.88
88,88
,88
.5
Ø .8
Ø 8.8
前4個值按預期匹配,但最后2個的一部分得到部分匹配,我預計它根本不匹配,有人可以告訴我缺少什么嗎?
你可以試試這個
(?<![Ø]\s*|[.,\d])(?=[\d.,]{1,})([0-9]*(?:[.,][0-9]+)?)
^^
||
一個更簡單的版本由bobble bubble建議
(?<!Ø\s*|[.,\d])(\d*[.,]?\d+)
總是更好地解釋SO的答案。 所以我們走了:問題是表達式實際上可以匹配字符串中的任何位置 。 因此,如果測試用例在匹配中有多個字符可能會失敗,那么匹配將啟動一個字符並匹配其余字符。 鑒於給定的表達式可以匹配一些空白字符串,更是如此。 做事的最佳方式是:
這兩個都可以用負面的后視來完成。 因此: (?<!Ø\\s*[.,\\d]*)\\d*[.,]?\\d+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.