我希望匹配“type:”之后的单词。
我有什么?
我的实际模式: (小于=类型\ S?:\ S)(\ W *)
文字: “type:text,”
当我在颜色之前/之后只有一个空格时,它可以正常工作......
“type_SPACE _:_ SPACE_text
但如果我有2个空格或没有空格,则不起作用。
我已尝试过这个,但不符合。 (?&LT =类型\ S *:\ S *)(\ W *)
另外,我尝试这个,最好的方法。但有了这个,匹配的文本包含冒号。
(?&LT =型)(\ S *):(\ S *)(=,?)
(*)。要进行测试,我使用gskinner的测试器...... http://gskinner.com/RegExr/
答案 0 :(得分:3)
如果您是在C#中使用附带的Regex引擎进行此操作,那么您的原始正则表达式应该可以正常工作,稍作修改:
string myString = "type : something";
var match = Regex.Match(myString, @"(?<=type\s*:\s*)\w+");
Console.Write(match);
编辑:?<=type\s*:\s*)\w*
版本不适用于多个空格的原因是因为正则表达式匹配很高兴返回冒号后面的可变空格数后的0个字符的各种字符串组合。
您可以使用Regex.Matches
查看各种匹配的字符串,您会看到匹配的字符在那里,但这不是第一个结果。