簡體   English   中英

正則表達式我怎樣才能只得到字符串中的確切部分

[英]Regex how can i get only exact part in a string

我應該只捕捉符合規則的數字。 規則:

  1. 應該是16位
  2. 前 11 位數字可以是任意數字
  3. 3位數字后應該全為零
  4. 最后兩位數可以是任意數字。

我是這樣做的;

([0-9]{11}[0]{3}[0-9]{2})

號碼示例:1234567890100012

現在我想得到這個數字,即使它有任何字母開頭或結尾的字符串,比如“abc1234567890100012abc”,我的 output 應該只是像“1234567890100012”這樣的數字當我添加 [a-zA-Z]* 時,它會給出所有字符串。

還有一點是字符串的開頭或結尾是否有任何數字,例如“999912345678901000129999”。 程序不應該采取這個。 我的意思是它應該什么也不返回。 我怎么能用正則表達式寫這個。

您可以使用環顧四周來排除之前/之后有更多數字的情況:

(?<?\d)\d{11}000\d\d(?!\d)

正則表達式101

您可以使用捕獲組,並在組之前和之后匹配可選字符 a-zA-Z。

為了防止部分匹配,您可以使用單詞邊界\b或者如果字符串應該從行的開頭和結尾匹配,您可以使用錨^$

\b[a-zA-Z]*([0-9]{11}000[0-9]{2})[a-zA-Z]*\b

正則表達式演示

暫無
暫無

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

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