簡體   English   中英

創建僅在輸入開頭匹配數字的Java正則表達式

[英]Creating a Java regular expression that will match on numbers at beginning of the input only

我有兩個正則表達式,一個用於美國護照,一個用於英國護照。

UK : (?<!\B)(?:\d{9})(?!\B)
US : (?<!\B)(?=(?:[0][0-9]|1[0-5])|15|17|20|21|22|30|31|40|50|53)\d{9}(?!\B)

這些是給我的,似乎可以很好地用於自己的例子。

問題是,以這種格式輸入美國銀行路由號碼時

Routing:121181976

並在系統中運行匹配項,則將路由號標識為美國/英國護照以及銀行路由號(具有另一個不相關的正則表達式)。

盡管有前面的文本,但Passport正則表達式仍在提取9位數的路由號碼。

我該如何更改Passport正則表達式,以便它們不理會帶有附加在字符串上的文本的輸入。 我假設^插入符號在其中起作用,從而創建了這樣的條件,即匹配必須首先從數字本身開始。

一直試圖在各種正則表達式測試站點中創建正則表達式,並嘗試查閱正則表達式書籍。

是的..您必須使用start ^和end $錨點。.這將僅在輸入中檢查模式..忽略是否找到任何文本:

UK : ^(?:\d{9})$
US : ^(?=(?:[0][0-9]|1[0-5])|15|17|20|21|22|30|31|40|50|53)\d{9}$

暫無
暫無

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

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