一道正则练习及总结

要求:匹配每对中括号之间的${}里面的内容。

  例如[idkey=${param1}] and [CNNAME<>${param2}] or [column3>${param3}] ,需要匹配出param1、param2和param3。

答案:

总结:

1.转义字符:

  正则表达式中要匹配的字符本身,很多需要进行转义处理,也就是在原字符前加反斜杠‘\‘

  这些字符包含 ( ) [ ] { } * . ? + $ ^ | \ /

2. 表达式中.*?中 . 的含义

  其中 . 表示匹配除换行符/n任意字符字符之外的任意字符。

3.贪婪模式与懒惰模式

  贪婪模式,尽可能多地匹配字符。懒惰模式反之。

  最明显的表现是,如果使用贪婪模式,只能匹配出来一组数据,从头到尾,很长。而使用懒惰模式则可以达到预想的效果。

  匹配数量限制后面加一个问号?为懒惰模式。

  

4.exec,match和test

  

    

时间: 2024-08-27 07:52:35

一道正则练习及总结的相关文章

高级正则实例

如何学好正则,一直是我苦恼的事情,有时候我自己的写的正则,自己也不太明白所以然,抱着试试的态度 但是我真的很想学好,这里我都会以实例出来,对每一道正则都写上自己的理解(基础部分我就不写,尽量写一些小细节的点) 部分会参考我看的<> 多选 竖线| 分隔多选,但是|的优先级特别低,可以用括号把他包起来 复杂些|简单写 专门为捕获组设计的exec 超级强大,可惜我今天才发现(2019/05/10) 默认返回的匹配的项,其他匹配的通过是分组的内容,通过[]获取 let str = "aaab

源于一道文字游戏的题目

独立博客地址:http://cxh.me/2015/01/05/a-word-puzzle/ 起源是这样一道题目: 于是想到通过word dict来算一下: 先去下载了中文词库: git clone [email protected].com:ling0322/webdict.git 然后去掉词频信息: awk '{ if (length($1)==2) print $1}' webdict_with_freq.txt >webdict.txt 先按照出现位置来正则过滤候选集,并且去掉大/日/风

python学习第十五节(正则)

正则的贪婪匹配 非贪婪模式按照最小重复数取 非贪婪匹配 正则的方法 re.split 正则分割 分割次数 保留分隔符,用一个括号套住分隔符 sub 替换字符串需要三个参数,要替换的内容(正则),新内容,字符串 分开写用compile可以写一次规则然后多次匹配,好处就是方便灵活. 返回一个迭代器对象 爬虫爬豆瓣电影信息,用正则 模块 configparser功能:创建成下面类型的文件 使用方法 读操作 DEFAULT是默认信息,不需要打印,默认信息是所有段落信息的共享信息. 用上图方法判断字段是否

python基础-正则2

正则函数 Python提供re模块,包含所有正则表达式的功能 由于python的字符串本身也有\转义,所以需要注意: s = "ABC\\-001" 对应的正则表达式应为:'ABC\-001' 用python的r前缀,就不用考虑转义问题 可以使用 s = r'ABC\-001' 对应的正则表达式为:'ABC\-001' match() 判断是否匹配成功,如果匹配成功,返回一个match对象,否则返回None test = "用户输入的字符串" if re.match

C#常用的正则工具类写法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace ConsoleApplication1 { /// <summary> /// 字符串正则匹配帮助类 /// </summary> public static cla

iOS 中的正则匹配(工具类)

正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对字符串的一种过滤逻辑, 正则表达式就是用于描述这些规则的工具, 或者说, 正则表达式就是记录文本规则的代码. 在开发中, 我们经常会有查找符合某些复杂规则的字符串的需要, 比如数据校验: 判断用户的输入是否合法(如:用户注册的时候,QQ号码,电话号码,邮箱是否符合要求) 下面让我们先来看看正则匹配常用的一些字

正则验证手机号(联通,电信,移动手机号),不包含座机号,作为会员登陆(正则验证) winform

public static class RegxCheck { /// <summary> /// 正则表达式验证是否为手机号 /// </summary> /// <param name="telNum">需要验证的手机号</param> /// <returns></returns> public static bool CheckTelNum(string telNum) { //电信手机号码正则 strin

看看你的正则行不行——正则优化一般的json字符串

json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 首先是对输入进行转换,如果是对象则转化为规范的json字符串,不是对象时,先将字符串转化为对象(防止不规范的字符串),然后再次转化为json串.其中json为输入. if (typeof json !== 'string') { json = JSON.stringify(json); } el

正则表达示

这里对正则表达示进行一定程度的总结.为避免太过纠结,这里避开一些 鸡肋 的正则用法. 更多文档参考官方文档 http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 字符 x 字符 x \\ 反斜线字符 \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义