正则表达式为字母数字,不应该像RUN123456

时间:2017-09-22 12:58:11

标签: regex pcre alphanumeric

我想在字符串上应用正则表达式以获取字母数字值,并且该值不应以RUN子字符串开头,后跟任何数字,例如RUN123456

以下是我用于获取字母数字值的正则表达式

regex='[A-Z]{2,}[_0-9a-zA-Z]*'

示例输入:

CY0PNI94980 Production AutoSys Job has failed. Call 249-3344. EC=54.  RUN130990.

匹配可以包括CY0PNI94980EC,但不包括RUN130990

请帮助我。

1 个答案:

答案 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个或更多字词(字母/数字/ _)。