仅匹配两个组合并忽略 REGEX 中的其余组合 - 画面

Match only two combinations and ignore the rest in REGEX - tableau

我有十几个输入 ID,我只需要匹配两个特定模式而忽略其余模式。如果正则表达式匹配为真,我有一列会标记那些 valid/invalid。

测试字符串:

1.) B-123456

2.) 985463728

我的正则表达式应该严格匹配上面的两个模式,忽略其余的。第一个测试字符串将有一个字母 B,后跟一个连字符,然后是几个数字,而第二个测试字符串是纯数字。以下是我的尝试:

[Bb\d][-\d][0-9]{1,9}

请帮我解决这个问题,因为我尝试了一些奇怪的组合,但我漏掉了一些小东西。我的正则表达式还包括其他不应该发生的组合。

您可以匹配 bB a - 和 6 个数字,或者匹配被单词边界包围的 9 个数字:

\b(?:[Bb]-[0-9]{6}|[0-9]{9})\b

Regex demo

如果位数可以变化,您可以使 bB 和连字符可选,并使用 [0-9]+ 匹配 1+ 个数字或使用 quantifier [0-9]{1,9}

\b(?:[bB]-)?[0-9]+\b

或者使用锚点断言字符串的开始^和结束$

^(?:[bB]-)?[0-9]+$