c# - 正则表达式仅匹配单词中的第一个字母

标签 c# regex linq

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

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

最佳答案

尝试

\b([xyz]\w*)

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

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

也可以去here测试正则表达式。尽管它适用于 phppythonjavascript,但它仍然很适合测试:)

希望这对一些人有帮助!

关于c# - 正则表达式仅匹配单词中的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835441/

相关文章:

c# - 如何通过 Windows 命令提示符和 C# 更改一个字符串中的两项

r - 在正向后查找后捕获,除非字符串包含 R 中的排除项

java - 从字符串中删除除字母和数字以外的任何内容

正则表达式如果(文本包含此文本)匹配此

c# - 根据匹配的列表返回包含列表的对象

c# - 如何使用返回的 linq 变量?

c# - 对每个元素包含 2 个值的列表进行排序

c# - Webkit 的 .NET 包装器

c# - NPGSQL:使用 LWGEOMCOLLECTION 类型调用的关联操作

c# - 比较 2 个对象并检索具有不同值的字段列表