正则表达式先行断言和后行断言的应用
1、正向先行断言
语法: (?=pattern)
作用:匹配pattern前面的内容,不返回自身
2、正向后行断言
语法:(?<=parttern)
作用:匹配表达式后面的内容不返回自身
3、负向先行断言(复前瞻)
语法:(?!parttern)
作用:匹配非pattern前面的内容,不返回自身
4、负向后行断言
语法: (?<!pattern)
作用:匹配非pattern表达式后面的内容,不返回本身
5、应用:比如微信的模板消息,模板的内容如下:
{{first.DATA}} 问题:{{keyword1.DATA}} 老师:{{keyword2.DATA}} 提问时间:{{keyword3.DATA}} {{remark.DATA}}</param>
要匹配到里面的关键字,就可以用正后和正先断言匹配。
代码如下
var templateContent = "{{first.DATA}} 问题:{{keyword1.DATA}} 老师:{{keyword2.DATA}} 提问时间:{{keyword3.DATA}} {{remark.DATA}}</param>"; var valueRegex = new Regex("(?<={{).*?(?=.DATA)"); var matches = valueRegex.Matches(templateContent);