C# 检查最后一个字符是X、Y还是Z

C# 检查最后一个字符是X、Y还是Z,c#,regex,C#,Regex,如何检查单词的最后一个字符是否与X、Y或Z匹配 例如: 停车场 矮胖的 spacex 使用[xyz]将匹配整个字符串中的任何字符,而不仅仅是最后一个字符。是否可以在纯正则表达式中执行此操作而不必创建子字符串?您只需使用$ [xyz]$ 如果需要进行不区分大小写的匹配,可以使用以下选项之一 [xXyYzZ]$ 或者,您可以使用RegexOptions.IgnoreCase指定匹配不区分大小写 bool match = Regex.IsMatch(input, "[xyz]$", RegexOp

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

例如:

停车场

矮胖的

spacex


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

您只需使用
$

[xyz]$
如果需要进行不区分大小写的匹配,可以使用以下选项之一

[xXyYzZ]$
或者,您可以使用
RegexOptions.IgnoreCase
指定匹配不区分大小写

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

您需要使用行尾锚点
$
来匹配最后出现的字符
x
y
z

[xyz]$
@"(?i)[xyz]$"
在正则表达式中,[]称为字符类。请注意,没有任何后续
*
+
的char类将只匹配单个字符。在正则表达式中添加
(?i)
不区分大小写的修饰符,以便匹配最后出现的大小写
x
y
z

[xyz]$
@"(?i)[xyz]$"
/[a-wA-W]+([x-zX-Z]{1})/g

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

驻车油箱yrasezdasdasdzasdasdadaxyy


您可以在

上查看它,试试这个:

^\w+[xyz]$
它与整个单词相匹配

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

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

在屏幕上查找“边界”

建议搜索
[XYZ]$
的答案将不会处理诸如“IBEX”之类的字符串

这适用于行尾和空格
并只检查word的最后一个字符,否则无法使用正则表达式

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

[xyz]$
,这是非常基本的。在发布问题之前,请展示您所付出的努力。@funkworm认真吗?不管基础与否,我都不知道怎么做。我也展示了我的进步。那么下次我该怎么办呢?甚至不要寻求帮助,因为这是一个非常基本的问题,有人可能会被冒犯?每个人都曾经是初学者。谷歌快速搜索“regex last character”提供了教程,stackoverflow问题都提到了使用
$
来实现这一点。我并没有生气,这个网站只有在过于具体而无法通过谷歌搜索解决的问题没有被这些基本问题所掩盖的情况下才有效。我们不希望您跳过初学者阶段,我们希望您利用其他资源,而不是在提问之前简单地向您提供代码。特别是
regex
标记的问题,可能解释了我的语气。最后一个x不应该粗体,但y应该粗体。这不起作用-最后一个单词以“y”结尾,但不匹配。另外,更好的答案应该解释正则表达式模式是如何工作的。([xyz]{1})(?:\s |$)这适用于行尾和空格