![](/img/trans.png)
[英]Not to match with regex in angular if there are any attachments, letters, words at the beginning and(or) end
[英]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.