如何检查单词的最后一个字符是否与X,Y或Z匹配
例如:
公园
tanky
SpaceX的
使用[xyz]
将匹配整个字符串中的任何字符,而不仅仅是最后一个字符。是否可以在 pure 正则表达式中执行此操作而无需创建子字符串?
答案 0 :(得分:4)
您只需要使用$
[xyz]$
如果您需要进行不区分大小写的匹配,可以使用以下
[xXyYzZ]$
或者您可以指定匹配对RegexOptions.IgnoreCase
不区分大小写。
bool match = Regex.IsMatch(input, "[xyz]$", RegexOptions.IgnoreCase);
答案 1 :(得分:2)
您需要使用行结束$
来匹配最后出现的字符x
或y
或z
。
[xyz]$
在正则表达式[]
中称为字符类。请注意,没有任何跟随*
或+
的char类仅匹配单个字符。在正则表达式中添加(?i)
不区分大小写的修饰符,以匹配最后出现的大写和小写x
或y
或z
。
@"(?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)
答案 4 :(得分:0)
试试这个:
^\w+[xyz]$
它匹配整个单词。
bool match = Regex.IsMatch(input, "^\w+[xyz]$", RegexOptions.IgnoreCase);
答案 5 :(得分:0)
([xyz]{1})(?:\s|$)
这适用于行结尾和空格 并仅检查单词的最后一个字符
答案 6 :(得分:0)
或者你不能使用正则表达式,
var valid = new[] { 'x', 'y', 'z' };
return valid.Contains(s.Last());