0
我有以下的正则表达式:Ruby的正则表达式应该排除 “125AF” 子
/^(\d{1,11})((?:(?:c?o|co?).*)?.*)$/i
匹配的字符串,如:
125******* or 125co****** or 125CO*******
我想排除开头子:
125af***** or 125AF****** or 125f****** or 125AF********
在此先感谢
对于'一(> BC |?B)C'你可以说它与'a(bc)c'相同,但对于更复杂的表达式则不行。问题是:你有一个字符串“abc”和原子表达式。你的表情会匹配“a”,这很明显。然后它会尝试第一个替代的“bc”,它也会匹配,但是在交替之后有一个“c”,但是字符串完全匹配。通常它会回溯并尝试第二种选择,但由于它是一个原子组,它不会回溯,所以它会失败,因为字符串中没有“c”,可以与最后一个“c”匹配正则表达式。 – stema 2012-07-10 14:46:10
好的,谢谢。为了得到一个带有数字部分“125”的MatchData对象,我修改了正则表达式,如下所示:^((?> \ d {1,11}))(?!af | a | f)((?:(?: c 2 O |??合)*)*)$ – 2012-07-12 07:46:07