由于某种原因,这应该很简单,我似乎在扩展我的正则表达式知识的界限。我只需要一个匹配单词中第一个字母的正则表达式。我只想要数组中以 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,但它仍然很适合测试:)
希望这对一些人有帮助!
关于c# - 正则表达式仅匹配单词中的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835441/