旁白:好的,我知道我不应该用正则表达式来分离这样的HTML,但它最简单的我需要的东西.
我有这个正则表达式:
Regex BodyEndTagRegex = new Regex("</body>(.*)$", RegexOptions.Compiled |
RegexOptions.IgnoreCase | RegexOptions.Multiline);
Run Code Online (Sandbox Code Playgroud)
请注意我是如何寻找字符串结尾的$.
是否对.NET的正则表达式进行了优化,以便它不必扫描整个字符串?如果没有,我怎样才能优化它到最后开始?
您可以通过指定" 从右到左模式"选项来控制它本身,但正则表达式引擎不会自动对其进行自动优化,直到您通过指定选项自行完成:
我相信关键点是:
默认情况下,正则表达式引擎从左向右搜索.
您可以使用RegexOptions.RightToLeft选项反转搜索方向.搜索自动从字符串的最后一个字符位置开始.对于包含起始位置参数的模式匹配方法,例如Regex.Match(String,Int32),起始位置是搜索开始时最右侧字符位置的索引.
重要:
RegexOptions.RightToLeft选项仅更改搜索方向; 它不会从右到左解释正则表达式模式
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |