检查最后一个字符是X,Y还是Z.

时间:2014-12-18 12:42:55

标签: c# regex

如何检查单词的最后一个字符是否与X,Y或Z匹配

例如:

  

公园

     

tanky

     

SpaceX的

使用[xyz]将匹配整个字符串中的任何字符,而不仅仅是最后一个字符。是否可以在 pure 正则表达式中执行此操作而无需创建子字符串?

7 个答案:

答案 0 :(得分:4)

您只需要使用$

锚定到字符串的末尾
[xyz]$

如果您需要进行不区分大小写的匹配,可以使用以下

[xXyYzZ]$

或者您可以指定匹配对RegexOptions.IgnoreCase不区分大小写。

bool match = Regex.IsMatch(input, "[xyz]$", RegexOptions.IgnoreCase);

答案 1 :(得分:2)

您需要使用行结束$来匹配最后出现的字符xyz

[xyz]$

在正则表达式[]中称为字符类。请注意,没有任何跟随*+的char类仅匹配单个字符。在正则表达式中添加(?i)不区分大小写的修饰符,以匹配最后出现的大写和小写xyz

@"(?i)[xyz]$"

答案 2 :(得分:1)

/[a-wA-W]+([x-zX-Z]{1})/g

此正则表达式检查所有单词,而不仅仅是行结尾。例如,此字符串成功检查:

park tank y rase z dasdasd z asdasdada x yy

您可以在REGEX101.com

上查看

答案 3 :(得分:1)

搜索[XYZ]\b查找字母后跟字边界。这将查找较大字符串中的单词是否以字母结尾。

this web page

上查找“边界”

建议搜索[XYZ]$的答案不会处理“IBEX”等字符串。

答案 4 :(得分:0)

试试这个:

^\w+[xyz]$

它匹配整个单词。

bool match = Regex.IsMatch(input, "^\w+[xyz]$", RegexOptions.IgnoreCase);

Live Demo

答案 5 :(得分:0)

([xyz]{1})(?:\s|$)

这适用于行结尾和空格 并仅检查单词的最后一个字符

答案 6 :(得分:0)

或者你不能使用正则表达式,

var valid = new[] { 'x', 'y', 'z' };
return valid.Contains(s.Last());