为什么这个正则表达式无法匹配:
(?<="Title" = "8:)[^"]*(?=")
这样:
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
"Title" = "8:something"
"Subject" = "8:"
"ARPCONTACT" = "8:something"
"Keywords" = "8:"
摘自视觉工作室设置项目。它匹配我正在使用的在线工具,但它使用Regex.Match()
不匹配以下是代码:
var productTitleRegex = @"(?<=""Title"" = ""8:)[^""]*(?="")";
var titleMatch = Regex.Match(content, productTitleRegex);
titleMatch.Success如果为false且值不返回任何内容
编辑:
也许我只是在使用“向前看”并在.net正则表达式后面看错了?因为如果我删除了外观,这可以工作,但它匹配整行,我不想要。所以我用lookarounds来匹配我想要的值。
在.net regex中使用lookarounds时,其他人有类似的经历吗?
答案 0 :(得分:1)
我在VS2008中使用C#测试了你的正则表达式模式,它找到了与“某事”匹配的值。看起来它工作正常。我还使用从http://www.radsoftware.com.au/regexdesigner/
下载的免费工具对其进行了测试
但是,如果您使用RegEX与RegexOptions“IgnorePatternWhitespace”
,它将无效 var productTitleRegex = @"(?<=""Title"" = ""8:)[^""]*(?="")";
var titleMatch = Regex.Match(content, productTitleRegex, RegexOptions.IgnorePatternWhitespace);
在这种情况下,您将无法获得任何匹配