簡體   English   中英

以 2 個字母開頭並以 3 個字母結尾的匹配正則表達式

[英]Regex for match beginning with 2 letters and ending with 3 letters

示例輸入:

'Please find the ref AB45676785567XYZ. which is used to identify reference number'

示例輸出:

'AB45676785567XYZ'

我需要一個RegExp來返回完全符合我要求的匹配項; 即前 2 個和后 3 個字符是字母的子串。

前 2 個和后 3 個字母未知。

我試過這個RegExp

[a-zA-Z]{2}[^\s]*?[a-zA-Z]{3}

但它不符合預期。

您當前的RegExp匹配以下標有代碼塊的單詞:

Please找到參考AB45676785567XYZ 用於identify reference number

這是因為您的RegExp[a-zA-Z]{2}[^\\s]*?[a-zA-Z]{3}要求:

  • [a-zA-Z]{2}以 2 個字母開頭(無論大小寫)
  • [^\\s]*? 包含任何不是空格的內容
  • [a-zA-Z]{3}以 3 個字母結尾(無論大小寫)

在您當前的示例中,將字母限制為僅大寫只會匹配您尋找的匹配項:

[A-Z]{2}[^\s]+[A-Z]{3}

或者,要求 2 個開始和 3 個結束字母之間的數字也會產生您想要的匹配:

[a-zA-Z]{2}\d+[a-zA-Z]{3}

以 2 個字母開頭:

[a-zA-Z]{2}

中間的數字:

\d+

以 3 個字母結束:

[a-zA-Z]{3}

完整的正則表達式:

[a-zA-Z]{2}\d+[a-zA-Z]{3}

如果中間的文本是字母數字,你可以使用這個:

[A-Z]{2}[^\s]+[A-Z]{3}

這里真正重要的是字邊界\\b ,嘗試: \\b[a-zA-Z]{2}\\w+[a-zA-Z]{3}\\b

解釋:

\\b - 詞邊界

[a-zA-Z]{2} - 匹配任意字母,2 次

\\w+ - 匹配一個或多個單詞字符

[a-zA-Z]{3} - 匹配任意字母,3 次

\\b - 詞邊界

演示

注意您的要求是模棱兩可的,因為任何由 5 個或更多字母組成的單詞都將匹配該模式

暫無
暫無

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

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