正则表达式先行断言和后行断言的应用

 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);

 

posted @ 2023-02-27 15:37  向萧  阅读(375)  评论(0编辑  收藏  举报