簡體   English   中英

正則表達式:如何匹配數字?

[英]Regular expressions: how to match numbers?

我想使用正則表達式來匹配這樣的數字:

58158
60360
98198

格式為ABCAB

我使用下面的代碼來匹配ABAB

(([\d]){1,}([\d]){1,})\1{1,}

例如5858但如何搭配ABCAB(58158)?

對於ABCAB格式的ABCAB

(\d)(\d)\d\1\2

這對A=B=C沒有限制。 A!=B!=C使用否定的前瞻

(\d)(?!\1)(\d)(?!\1|\2)\d\1\2

編輯:

沒有邊界匹配,因此58158將在36958158匹配:

$num=36958158;
preg_match('/(\d)(?!\1)(\d)(?!\1|\2)\d\1\2/',$num,$match);
echo ">>> ".$match[0];

>>> 58158

要匹配ABCAB形式的整數,請使用\\b(\\d\\d)\\d(\\1)\\b

\\b是單詞邊界, \\1引用第一組。

示例(使用JavaScript,以便可以在瀏覽器中對其進行測試,但可以在大多數正則表達式解決方案中使用):

var matches = '58158 22223 60360 98198 12345'.match(/\b(\d\d)\d(\1)\b/g);

["58158", "60360", "98198"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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