由于某种原因,这应该很简单,我似乎在扩展我的正则表达式知识的界限。我只需要一个匹配单词中第一个字母的正则表达式。我只想要数组中以 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,但它仍然很适合测试:)
希望这对一些人有帮助!
