2

匹配重复模式的正则表达式应该是什么,例如:

AA12/AA/12/BC
A/BC/CD/8
A1/1/X/7

其中第一个字符必须是字母,后跟任意数量的字母数字字符,然后是重复一次或多次的模式“/X”,其中 X 是字母数字字符或多个字母数字字符,并且至少一个重复应包含一个数字。

有效模式:

A/B/C/D/1
A/1234/XYSX
PQ123/1
AB/CD1/PQ

无效模式:

12/AB/34
AB/CD/XY
AB/CD

到目前为止,我想出了:

[A-Za-z]\w*(/\w*[0-9]\w*)+

基本上说后面的重复部分应该包含一个数字,这是不正确的,因为如果只有一个重复部分包含一个数字就可以了。任何人都可以帮忙吗?

4

1 回答 1

1

虽然肯定不是最漂亮的解决方案,但这里有一种可能性:

[A-Za-z]\w*(/\w+)*(/\w*[0-9]\w*)+(/\w+)*

请注意,我在两个实例中添加了(/\w+)*. 基本上我只是添加“可能出现更多不需要数字的斜线字母数字”。

于 2012-11-05T19:51:21.593 回答