我有一个正则表达式,可以检测到名为PO Number
的名为PO编号的内容,后跟一些字符,这些字符可能是也可能不是数字,但肯定包含数字。它也可以有空格。
您可以看到link来查找问题。
模式:
((P\s*o\s*(\#|Number|No|\.)*\s*([:=\-\'\s\.])?\s*(\d*\s?([A-Z\-\/]*\s?\d+)+[A-Z\-]*)))
当出现类似情况时会出现问题:
Case 3. Ship on 123
此处p后跟o,以下条件适合匹配。但我需要检查'p'之前的条件是'shi'p。
显然,我需要实现一些东西,以避免p前面有一个普通的单词[A-Z] +,但如果它前面有空格或数字,则允许p。以下条件应该通过。
Case 1. YO#11111PO#2015 S53-55A
Case 2. YO#12345_PO#234 S34-34A
我尝试使用字边界\b
,但这会导致案例1和2失败。还有另一种方式。
答案 0 :(得分:3)
使用(?:[^a-z])
这是一个非捕获组,因此当您解释组时,它不会出现在列表中。