【发布时间】:2011-02-19 12:07:25
【问题描述】:
我想编写正则表达式来读取 HTML 中 <script></script> 块内的数据。作为脚本,我想空白是有灵活性的。为了使我的正则表达式模式健壮,我必须预测不同数量的空白。也许有比在我的模式中放置许多空白匹配器更简单的方法。例如,可能有一个规范化器? (规范化器当然必须理解字符串文字,以免破坏它们。)
我正在使用 .NET 和 Regex 类。 (注意:Regex 类有一个 ECMAScript 选项,我认为它可能会启用一个理解脚本空白但阅读它的描述的功能,似乎没有。)
编辑:Regex 类有一个选项“IgnorePatternWhitespace”,但请注意这在编写 regex 模式时提供了灵活性。它不会改变解析/匹配行为。
我试图避免将空格匹配器以以下类型的模式放置在许多位置:
const string propertyKey = @""".+""";
const string propertyValue = @""".+""";
string property = propertyKey + @"\x3a" + propertyValue;
string actionProperties = property + @"(\x2c" + property + @")*";
string actionPattern = @"\x7b" + actionProperties + @"\x7d";
string contentPattern = actionPattern + @"(\x2c" + actionPattern + @")*";
string corporateActionsPattern = @"corp_actions\s*:\s*""\s*[" + contentPattern + @"]\s*""";
【问题讨论】:
-
代码,通常
script标签包含的代码不能用正则表达式正确解析。 -
谢谢,很高兴知道。幸运的是,我不需要解析所有脚本代码,只需要解析键值对列表。
标签: javascript .net regex