当某个角色出现在另一个特定角色之后时,正则表达式不匹配?

时间:2011-12-24 21:23:41

标签: regex

当特定字符后面的字符串中存在字符时,我需要一个不匹配的正则表达式。

例如我的第一个字符是'X',后面不允许的字符是'U'。

以下是有效的:

eUpXssseeeree // U is before X
rtsssXeeeree  // U is not there at all

以下无效

ereXUppsrrrsssss     // U is there right after X
ereeXrerrrtogUoosss  // U is still there even after a few characters

我正在使用C#语法。你能指导我如何写这样的正则表达式吗?

2 个答案:

答案 0 :(得分:3)

听起来像“任何字符一样简单,然后是X,后跟任何不是U的字符”:

/^.*X[^U]*$/

(见reFiddle example

当然,您希望确保使用开始^和结束$字符来匹配整个字符串。

答案 1 :(得分:3)

string testString = "eUpXssseeeree";

if ( !Regex.IsMatch( testString , @"[X].*[U]") )
{
     //Valid case
     //eUpXssseeeree // U is before X  
     //rtsssXeeeree  // U is not there at all
}
else
{
//Invalid Case
}