我想這個字符串匹配: s +不匹配所有空格?
文本18 19文本
有了這個表達式:
\s+\d\d\s+
字符串有兩個數字,他們每個人都被包圍領先和尾隨空間。
所以我在想 - 這應該給我18和19吧? 它沒有,它只是給了我只有18
我這個測試儀測試在這裏:http://java-regex-tester.appspot.com/
謝謝!
我想這個字符串匹配: s +不匹配所有空格?
文本18 19文本
有了這個表達式:
\s+\d\d\s+
字符串有兩個數字,他們每個人都被包圍領先和尾隨空間。
所以我在想 - 這應該給我18和19吧? 它沒有,它只是給了我只有18
我這個測試儀測試在這裏:http://java-regex-tester.appspot.com/
謝謝!
不要第二項匹配的原因是,第一場比賽的後\s+
的空間和19
之間18
是消耗。你應該使非消耗零寬度的regexp爲結尾的空白,例如,通過使用先行語法或令牌用於零寬度邊界:
\s+\d\d(?=\s+)
因爲第一次解析輸出爲「18」,剩餘字符串爲「19文本」,這不匹配。
很好的解釋+1的帖子。 –