0

我想匹配“类型:”之后的单词。

我有的?

我的实际模式: (?<=type\s:\s)(\w*)

文本:“类型:文本”

当我在颜色之前/之后只有一个空格时,它可以完全按照我的意愿工作......

"type_SPACE_:_SPACE_text

但如果我有 2 个空格或没有空格,它就不起作用。

我已经尝试过这个,但不匹配。(?<=type\s*:\s*)(\w*)

另外,我尝试使用这种最好的方法。但是有了这个,匹配的文本包含冒号。

(?<=type)(\s*):(\s*)(.*)(?=,)

要进行测试,我使用 gskinner 的测试仪... http://gskinner.com/RegExr/

4

1 回答 1

3

如果您在 C# 中执行此操作并使用包含的正则表达式引擎,则您的原始正则表达式应该可以工作,只需稍作修改:

        string myString = "type :  something";

        var match = Regex.Match(myString, @"(?<=type\s*:\s*)\w+");

        Console.Write(match);

编辑:该?<=type\s*:\s*)\w*版本不适合您使用多个空格的原因是因为正则表达式匹配很高兴在冒号后面的可变数量的空格之后返回带有 0 个字符的字符串的各种组合。

您可以使用 查看各种匹配的字符串Regex.Matches,您会看到匹配的单词在其中,但不是第一个结果。

于 2013-06-30T14:11:40.257 回答