簡體   English   中英

字符串中存在匹配的4位數字

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

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