Regex只匹配单词中的第一个字母

本文关键字:第一个 单词中 Regex | 更新日期: 2023-09-27 18:23:45

这应该很简单,因为某种原因,我似乎在扩展我的正则表达式知识的边界。我只需要一个正则表达式来匹配单词中的第一个字母。我只想要数组中以xyz开头的字母。这似乎减少了数组中的项目数量。。。但我不知道为什么,因为结果不是我所期望的。

Regex regex = new Regex(@"'b[x|y|z]");
string[] array = text.Where(x => regex.IsMatch(x)).ToArray()); // 'text' is an array 

Regex只匹配单词中的第一个字母

尝试

'b([xyz]'w*)

'w*表示零到多个单词字符。当使用[]时,|隐含在字符之间。因此,[xyz]的意思是x、y或z。然后放置()可以捕获单词。简而言之,我们找到一个单词的开头,然后捕获一个以x、y或z开头的字符串。

此外,您可以将'w更改为[A-Za-z],因为有些会将_和数字作为一个单词字符:)

也可以在这里测试regex。尽管它适用于phppythonjavascript,但测试仍然很好:)

希望这能帮助到一些人!

可能是您正在搜索的内容:

Regex regex = new Regex(@"^(x|y|z).+$");

我试过了,它似乎能满足你的需求:

new Regex(@"'b[x|y|z](?='w*'b)")

如果我正确理解你的答案,那么你需要匹配以字母xyz开头的单词。您接受的答案将与出现xyz之后的所有内容相匹配。

试试这个:

[xyz]'w+

在类似的文本中

lalalla nananna x xaa yaaa zaaa lalala

它将匹配这三个单词

xaa 
yaaa 
zaaa

单独。

如果您还想匹配单个出现的字母,请使用

[xyz]'w*

相反,它将匹配

x
xaa 
yaaa 
zaaa