![](/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.