C# 正则表达式仅匹配单词中的第一个字母
这应该很简单,因为我似乎在扩展我的正则表达式知识的边界。我只需要一个正则表达式,它将匹配单词中的第一个字母。我只需要以C# 正则表达式仅匹配单词中的第一个字母,c#,regex,linq,C#,Regex,Linq,这应该很简单,因为我似乎在扩展我的正则表达式知识的边界。我只需要一个正则表达式,它将匹配单词中的第一个字母。我只需要以xy或z开头的数组中的字母。这似乎减少了数组中的项目数量。。。但我不知道为什么,因为结果不是我所期望的 Regex regex = new Regex(@"\b[x|y|z]"); string[] array = text.Where(x => regex.IsMatch(x)).ToArray()); // 'text' is an array 以下是您正在搜索的内
x
y
或z
开头的数组中的字母。这似乎减少了数组中的项目数量。。。但我不知道为什么,因为结果不是我所期望的
Regex regex = new Regex(@"\b[x|y|z]");
string[] array = text.Where(x => regex.IsMatch(x)).ToArray()); // 'text' is an array
以下是您正在搜索的内容:
Regex regex = new Regex(@"^(x|y|z).+$");
我试过这个,它似乎能满足你的需要:
new Regex(@"\b[x|y|z](?=\w*\b)")
试一试
\w*
表示零到多个单词字符。使用[]
时,字符之间会隐含|
。所以,[xyz]
表示x、y或z。然后放置()
捕获单词。简而言之,我们找到一个单词的开头,然后捕获一个以x、y或z开头的字符串
此外,您还可以使用[A-Za-z]
更改\w
,因为有些将包含\u
和数字作为单词字符:)
也可以去测试正则表达式。尽管它适用于php、python和javascript,但测试起来仍然很不错:)
希望这对你有所帮助 如果我正确理解了您的答案,那么您希望匹配以字母
x
、y
或z
开头的单词。在出现x
或y
或z
之后,您接受的答案将匹配所有内容
请尝试以下方法:
[xyz]\w+
在这样的文本中
lalalalla Nanna x xaa yaaa zaaa lalala
它将与三个单词相匹配
xaa
yaaa
zaaa
个别地
如果还希望匹配字母的单个出现,请使用
[xyz]\w*
相反,哪个会匹配
x
xaa
yaaa
zaaa
.你真的需要正则表达式吗?检查字符串中的第一个字母并检查其x y或z非常容易。我想知道执行此操作的正则表达式。您不应该在字符类中使用
,因为它表示字符
,而不是<代码>[xyz]就足够了。这里也有打字错误吗x.regex.IsMatch(x)
它应该是regex.IsMatch(x)
你为什么坚持使用正则表达式?那又如何呢?这是我在前面的回答中试图得到的正确正则表达式。@NealR这种模式^[xyz]
也应该有效,因为您只想检查第一个字符。@NealR很乐意帮助您:)请注意,表达式将只匹配数组文本每个条目中的第一个单词。因此,假设数组中的每个条目都是一个单词,那么这是否适用于您。也是尝试表达式的一个很好的资源
x
xaa
yaaa
zaaa