包含结束符在内的字符之间的正则表达式
本文关键字:字符 正则表达式 之间 结束 包含 | 更新日期: 2023-09-27 18:22:21
下面的正则表达式捕获-aaa和-cccc,但不捕获-eee我该怎么做?
keywords = "-aaa bbb -ccc -eee";
MatchCollection wordColNegEnd = Regex.Matches(keywords, @"-(.*?) ");
使用"单词边界"/'b/
而不是空格,它匹配字符串的末尾以及单词/非单词边界:
Regex.Matches(keywords, @"-(.*?)'b");
或者,根据字符串中的字符,只需使用"单词字符"/'w/
来匹配模式:
Regex.Matches(keywords, @"-('w+)");
MatchCollection worldColNegEnd = Regex.Matches(keywords, @"-(.*?)'b"
单词边界比空格好,不过请给其他人投票,因为我的大脑放屁了它的目的。
此外,我不知道为什么你在原件中包含?
,所以我留下了它,但我认为这没有必要,因为*
匹配0个或多个匹配。
使用
MatchCollection wordColNegEnd = Regex.Matches(keywords, @"-(.+?)'b");
当前,正则表达式需要在捕获组后面留一个尾随空格。字符串"aaa"answers"ccc"有这个,但"eee"没有。
与其匹配短划线后出现的任何字符,不如尝试匹配非空格的字符:
@"-('S*?)"
keywords = "-aaa bbb -ccc -eee";
MatchCollection wordColNegEnd = Regex.Matches(keywords, @"-'w+");
您还没有在这里指定要匹配的内容。
但如果我理解正确的话,你想匹配任何以-
开头的阿尔法字符串
使用此RegEx:-[a-z]+