C# 在c中按字符限制正则表达式
我得到以下模式\s\w+,我需要用空格匹配字符串中的每个单词 比如说C# 在c中按字符限制正则表达式,c#,regex,C#,Regex,我得到以下模式\s\w+,我需要用空格匹配字符串中的每个单词 比如说 many word in the textarea , must be happy 当我有这根绳子的时候 many word in the textarea must be happy 我明白了 这是正确的,但是当我有另一个角色时,例如 many word in the textarea , must be happy 我明白了 但是必须高兴应该被忽略,因为我希望它在字符串中有另一个字符时中断 编辑: 例2 all ca
many word in the textarea , must be happy
当我有这根绳子的时候
many word in the textarea must be happy
我明白了
这是正确的,但是当我有另一个角色时,例如
many word in the textarea , must be happy
我明白了
但是必须高兴应该被忽略,因为我希望它在字符串中有另一个字符时中断
编辑:
例2
all cats { in } the world are nice
应该还
all
cats
My
3
cats
are
因为{对我来说是另一个分隔符
例3
My 3 cats are ... funny
应该还
all
cats
My
3
cats
are
因为3是字母数字,.是我的分隔符
我能做什么?一体式正则表达式:-结果在列表中 试试这个。抓取捕获或匹配。请参阅演示。为多行模式设置标志m 见演示
我认为Sam I Am的评论是正确的:需要两个正则表达式 捕获最多为非单词字符的文本。 用空格捕捉所有单词。 以下是相应的代码: ^\\w+\\s++ \\w+\\s+ 您可以将这两种方法结合起来,非常容易地捕获单个单词,就像这样 ^\\w+\\s++ 下面是一段完整的代码,演示了该模式:
string input = "many word in the textarea , must be happy";
string pattern = "^(\\w+\\s+)+";
Match match = Regex.Match(input , pattern);
// Never returns a NullReferenceException because of GroupsCollection array indexer - check it out!
foreach(Capture capture in match.Groups[1].Captures)
{
Console.WriteLine(capture.Value);
}
编辑
请查看Casimir et Hippolyte,以获得一个非常清晰的答案。要做到这一点,您需要使用与字符串开头或最后一次匹配后的位置相匹配的\G锚点。因此,您可以使用此模式:
@"(?<=\G\s*)\w+"
你可以使用锚符号。^表示输入的开始,$表示输入的结束。如果你运行2个正则表达式,这将是最简单的。你可以在处理前将字符串拆分为“,”@SamIam,当我添加^和$^\s\w+$该模式找不到任何单词。因此,如果你想选择逗号之前的所有内容,请执行^.*,我们有赢家了!哦,TXS^\s\w++匹配在我的条件下字符串的正确长度,但是像1字符串一样返回bla bla bla bla,但是您的模式返回'bla''bla''bla'I not vote,但是我认为这是因为PHP的示例
@"(?<=\G\s*)\w+"