由于某种原因,我应该简单地说,我似乎正在扩展我的正则表达式知识的界限。我只需要一个与单词中第一个字母匹配的正则表达式。我只想要一个以x
y
或z
开头的数组中的字母。这似乎减少了数组中的项目数量...但我不确定为什么因为结果不是我所期待的。
Regex regex = new Regex(@"\b[x|y|z]");
string[] array = text.Where(x => regex.IsMatch(x)).ToArray()); // 'text' is an array
答案 0 :(得分:2)
尝试
\b([xyz]\w*)
\w*
表示零到多个单词字符。使用[]
时,字符之间隐含|
。因此,[xyz]
表示x,y或z。然后放置()
来捕获单词。所以,简而言之,我们找到一个单词的开头,然后捕获一串以x,y或z开头的单词字符。
此外,您可以使用\w
更改[A-Za-z]
,因为有些内容会包含_
而数字会包含字词:)
也可以here来测试正则表达式。即使它是 php , python 和 javascript ,它仍然很适合测试:)
希望这会有所帮助!
答案 1 :(得分:1)
这里可能是您正在搜索的内容:
Regex regex = new Regex(@"^(x|y|z).+$");
答案 2 :(得分:0)
我试过这个,似乎做了你需要的事情:
new Regex(@"\b[x|y|z](?=\w*\b)")
答案 3 :(得分:0)
如果我理解你的回答是正确的,那么你想匹配以任何字母x
,y
或z
开头的单词。在x
或y
或z
出现后,您接受的答案将与所有内容相匹配。
试试这个:
[xyz]\w+
在像
这样的文字中lalalalla nananna x xaa yaaa zaaa lalala
它会匹配三个单词
xaa
yaaa
zaaa
单独
如果您还想匹配单个出现的字母,请使用
[xyz]\w*
相反,匹配
x
xaa
yaaa
zaaa