正则表达式匹配额外的字符

时间:2013-12-05 14:36:59

标签: regex

我想只匹配“A”并排除“xyz”:

ABC xyz

但是使用

A[^xyz]

匹配

AB

编辑:我知道这个例子没有多大意义(如果我只想匹配A,我只会使用A作为正则表达式。但它说明了我遇到的问题,每当我添加匹配模式后跟[^xyz]形式的排除模式时,匹配模式似乎总是匹配额外的不需要的字符,(在此示例中为B。)

2 个答案:

答案 0 :(得分:2)

A[^xyz]匹配A*,其中* x,y或z中的任何字符。 有关详细信息,请参阅此页面:http://www.regular-expressions.info/charclass.html#negated

如果要匹配任何字符串中的任何A,请使用正则表达式A。不过,我认为您所寻找的是A xyz后面没有{{1}}。为此,请使用正则表达式A(?!xyz),它实现Negative Lookahead

答案 1 :(得分:2)

如果你只想匹配一个A,那就是你的正则表达式。

A

看起来你正试图说“匹配一个不是x,y或z的A”,这当然是多余的。