正则表达式
概念
正则表达式(regular expression)常用于对文本数据进行检索,替换,提取和修改操作。
描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
语法
要点
3个重要的正则式命令
括号,插入符号和美元符号
括号
在正则表达式中有3中类型的括号。
括号 | 符号 | 说明 |
---|---|---|
中括号 | [] | 需要匹配的内容 |
花括号 | {} | 指定匹配字符的数量 |
圆括号 | () | 用来分组的 |
插入符号^
插入符号表示正则表达式的开始
美元符号$
美元符号表示正则表达式的结束
例子
检验网址的URL格式
- 检查是否存在www:
^www.
- 域名必须长度必须在1-15的英文字母:
[a-z]{1,15}
- 以.com或者.org结束:
.(com|org)$
完整表达式
^www[.][a-z]{1,15}[.](com|org)$
Reluctant 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
贪婪模式和非贪婪模式
贪婪模式和非贪婪模式是针对于量词的,如*+?
贪婪模式(默认):会尽可能的匹配长度最大的匹配.
非贪婪模式(在量词后面加?):会最小长度的匹配字符
贪婪模式
非贪婪模式
例子
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
正则表达式 | 说明 |
---|---|
http(s)? | 匹配http或者https |
([\w-]+.)+[\w-]+ | 匹配多个多个以任意字母,下划线以及-和.组成的以及多个任意字符和下划线组成的字符串,”a-bc.net.” |