-2

我知道有人问过类似的问题(这里可能是同样的问题),但我似乎无法让我的正则表达式工作。我在那里尝试了答案,但没有奏效,如下所示。

^[A-Z]{2}\d+

我正在尝试检查国家序列号或组织编号是否以特定的两个大写字母开头。例如 BE0462427110 来自比利时公司,因此所有 org. 数字应以 BE 开头。德国曾经有DE,意大利曾经有IT在前面。

所以我也尝试了我自己的版本。

^([BE]{2})([\d]{6,10})$

下面是我用来从使用正则表达式中提取数字的测试块。数字在“BEPC0 PARTS”之后。

C0MMUNAUTE EUR0PEENNE 1 ExpCd1teur/Exp0rtateur (2) N0。BEPC0 零件 BE0462427110 Rue Chaum0nt(Herm) 4 DF BE 4480 Eng1s ED q 1jj - Dest1na1re (8) N0, NM BUCHER 1ANDTECHN1K SA 7

在上述正则表达式不起作用后,我尝试了另一个。

^([B][E])([\d]{6,10})$

那么我在这里做错了什么?

4

1 回答 1

1

这锚定在字符串的开头和结尾:

^([A-Z]{2})([\d]{6,10})$

您正在字符串中的某处寻找模式,因此您可以按单词边界锚定\b

\b([A-Z]{2})([\d]{6,10})\b
于 2020-12-08T05:55:10.017 回答