我想匹配一个特定的单词,后跟双引号。 我正在使用正则表达式 @" \ bspecific \ S * id \ b" ,它将匹配以特定开头且以id结尾的任何内容。 但是,我想要的东西应该匹配
"specific-anything-id"
(应该是双引号)
**<specific-anything-id>**
- 不应该匹配
specific-"anything"-id
- 不应匹配
答案 0 :(得分:1)
您可以包含双引号并使用否定字符类[^"]
(匹配除"
之外的任何字符)而不是\S
(它也可以匹配任何非匹配的双引号-whitespace character):
var pattern = @"""specific[^""]*id""";
这里不需要字边界。
请参阅regex demo和C# demo:
var s = "\"specific-anything-id\" <specific-anything-id> specific-\"anything\"-id";
var matches = Regex.Matches(s, @"""specific[^""]*id""");
foreach (Match m in matches)
Console.WriteLine(m.Value); // => "specific-anything-id"
答案 1 :(得分:0)
执行:
"([^"]+)"
匹配的组将包含您想要的ID。