[英]Match 4 digits exists in string
好的,這是眾多正則表達式問題中的又一個,我在搜索時沒有找到答案。
我想知道字符串是否包含一個四位數的數字,但數字不是整個字符串。 它還必須對5位數字失敗。
因此,這就是我今天所擁有的: \\d{4}[^\\d]
這適用於我的大多數情況,但是如果四位數的數字在字段末尾,則會中斷。
例子
#3333, INC343334 => I want 3333
dddd => I want no match
3333 => I want 3333
RT4323, INC33334434 => I want 4323
INC23455667, #3333 => I want 3333
您可以使用負向前瞻和負向后瞻來測試4位數字是否被其他數字包圍:
(?<!\d)\d{4}(?!\d)
這不符合過濾掉僅由四位數字組成的字符串的要求。 我建議單獨進行該過濾,例如psuedocode:
regex = /(?<!\d)\d{4}(?!\d)/;
strings.filter(s -> s.length != 4).filter(s -> regex.find(s).matches())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.