2

必须说我在RE的经验不是很丰富。我一直在寻找几个例子,但似乎没有什么适合我的需要。目前我有:

            Regex pattern = new Regex("[x]");

但如果它在“Exp”这个词内,我不想选择“x”。我怎样才能做到这一点?

Exp(x)--> 我只需要定位括号内的 x

我已经尝试过"[^Exp][x]" "(?Exp)[x]"各种变化,但没有得到想要的结果。

4

1 回答 1

2

尝试使用单词边界:

Regex pattern = new Regex(@"\bx\b");

此外,@避免了双重转义的任务。

单词边界是一个特殊字符,它将在字母、数字或下划线与非字母/非数字/非下划线之间进行匹配。基本上,如果你有aa,\b只会在开头和结尾匹配,而不是在中间。如果有a.2c\b将匹配 before a、 between aand .、 between .and2和 after c,但不匹配 between 2and c您可以在此网站上获得更多信息。


此外,如果您想获得x括号中的内容,您可以使用环视:

Regex pattern = new Regex(@"(?<=\()x(?=\))");

(?<=\()是一个积极的向后看,并检查以确保之前有一个开放的括号x

(?=\))是一个积极的前瞻,并检查以确保在 . 之后有一个关闭的括号x

于 2013-09-02T15:10:42.247 回答