[英]Java Regular Expression for number of exactly 5 digits anywhere in the string
我正在嘗試創建一個正則表達式來解析字符串中的5位數字,無論它在哪里,但是我似乎都無法弄清楚如何獲取開頭和結尾的大小寫。
我使用的模式如下\\\\d{5}
但這會捕獲更大數量的子集...但是,當我嘗試做類似\\\\D\\\\d{5}\\\\D
它不會不適合最終情況。 在這里,我將不勝感激! 謝謝!
舉幾個例子(應該提取55555
):
At the beginning of the string
"55555blahblahblah123456677788"
In the middle of the string
"2345blahblah:55555blahblah"
At the end of the string
"1234567890blahblahblah55555"
由於您使用的是支持它們的語言,因此請使用否定性環顧:
"(?<!\\d)\\d{5}(?!\\d)"
這些將斷言您的\\\\d{5}
既不是數字也不是數字。 這是由於字符串的邊緣還是非數字字符無關緊要。
請注意,這些斷言本身就是零寬度匹配。 因此,這些字符實際上不會包含在比賽中。 這就是為什么將它們稱為后向和向前。 他們只是檢查那里有什么,而沒有真正使它成為比賽的一部分。 這是使用\\\\D
另一個缺點,它會在您的匹配項中包含非數字字符(或要求您使用捕獲組)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.