Skip to main content
 首页 » 编程设计

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

2024年05月22日32qq78292959

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

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测试正则表达式。尽管它适用于 php、python 和 javascript,但它仍然很适合测试:)

希望这对一些人有帮助!