我想在字符串上应用正则表达式以获取字母数字值,并且该值不应以RUN
子字符串开头,后跟任何数字,例如RUN123456
。
以下是我用于获取字母数字值的正则表达式
regex='[A-Z]{2,}[_0-9a-zA-Z]*'
示例输入:
CY0PNI94980 Production AutoSys Job has failed. Call 249-3344. EC=54. RUN130990.
匹配可以包括CY0PNI94980
和EC
,但不包括RUN130990
。
请帮助我。
答案 0 :(得分:0)
您可以匹配与您的模式匹配的字符串,不包括以RUN
开头的所有字符串和数字:
\b(?!RUN[0-9])[A-Z]{2,}[_0-9a-zA-Z]*
请参阅regex demo
如果您不在乎是否匹配Unicode字母或数字,您可以与[A-Za-z0-9_]
签订\w
合同并使用
\b(?!RUN[0-9])[A-Z]{2,}\w*
<强>详情
\b
- 字边界(?!RUN[0-9])
- 如果在当前位置右侧有RUN
和任何ASCII数字,则匹配失败的否定前瞻[A-Z]{2,}
- 2个或更多大写ASCII字母[_0-9a-zA-Z]*
/ \w*
- 0个或更多字词(字母/数字/ _
)。