C# 在空格之间匹配单词的正则表达式

C# 在空格之间匹配单词的正则表达式,c#,regex,C#,Regex,我需要一个匹配以下内容的正则表达式(括号表示我要匹配此部分,它们不在要匹配的实际字符串中!): 我尝试了以下方法: (?试试看 (?这对我有用 [0-9]+\s([a-z \s]+)\s\s (?那么您的最终输出应该是什么?许多正则表达式实现不支持没有明显长度的look behind,甚至不支持可变长度的look behind,所以很可能是[0-9]+内部的(?对不起,忘了。我使用的是C,根据维基和它自己的文档都支持,look back和look aheads。我的最终输出应该是上面示例中标记

我需要一个匹配以下内容的正则表达式(括号表示我要匹配此部分,它们不在要匹配的实际字符串中!):

我尝试了以下方法:

(?试试看

(?这对我有用

[0-9]+\s([a-z \s]+)\s\s

(?那么您的最终输出应该是什么?许多正则表达式实现不支持没有明显长度的look behind,甚至不支持可变长度的look behind,所以很可能是
[0-9]+
内部的
(?对不起,忘了。我使用的是C,根据维基和它自己的文档都支持,look back和look aheads。我的最终输出应该是上面示例中标记为[]的部分。(当然不包括括号,那太简单了,嗯?:()我不怀疑它是否会支持look behind,但look behind内部支持“可变宽度”。我不确定C是否支持这一点。许多正则表达式实现不支持没有明显长度,甚至没有可变长度的look behind,所以可能是
[0-9]+
内部
(?工作得很好,但现在我有了一种奇怪的行为,有时一个单词的最后一个字母没有被选中,例如:[一些单词]s和[更多单词]s@ApoY2k,只需抓取第1组中匹配的内容。
(?<=[0-9]+\s)([a-z]+\s)*[a-z]+(?!\s{2,})
[0-9]+\s([a-z \s]+)\s\s
1: (                open group 1
2:  ?<=\d\s         look, if a digit followed by a whitespace are before group 2
3: )                close group 1
4: (                open group 2
5:  [a-zA-Z]+\s     match any words / letters that are followed by a whitespace
6: )*               close group 2 and let it repeat or not even be there
7: [a-zA-Z]+        match any words / letters and let them repeat one or more times