正则表达式必知必会(二)

使用子表达式

什么是子表达式

子表达式,通俗的叫法是 “分组”。把一个完整的正则表达式分解为一系列的小的表达式,这些小的表达式就是子表达式。

子表达式的语法

子表达式必须使用圆括号 () 括起来。
子表达式中可以使用竖线 | 表示逻辑或的操作
可以将子表达式认为是一个拥有多个元素的特殊“字符”,支持重复匹配
子表达式支持嵌套,允许多重嵌套

子表达式示例

正则表达式 文本 匹配结果 解释
(你|我) 你和我,心连心 你我 匹配“你”或者“我”
(洗刷刷){1,} 来一首洗刷刷洗刷刷 洗刷刷洗刷刷 匹配“洗刷刷”至少一次
((滚开),){2}(滚开) 重要的事情说三遍:”滚开,滚开,滚开” 滚开,滚开,滚开 (滚开),){2}匹配“滚开,”2次,(滚开)匹配剩下的1次“滚开”

回溯引用

定义

回溯引用,指在正则表达式中,后面的匹配模式引用前面定义的子表达式
可以将其理解为编程语言中的变量:前面的子表达式对应于定义变量,后面的回溯引用对应于引用变量。
也就是说,前面的子表达式匹配到什么,后面的回溯引用就匹配什么。
一个正则表达式可以被多次引用

语法

使用反斜线 \ 与子表达式的编号组成。

例如,以下正则表达式匹配所有的HTML标题:
<[Hh]([1-6])>.*?

回溯引用既可以用用在搜索操作中,也可以用在替换操作中。
替换操作需要2个正则表达式:一个用来进行搜索,称为搜索模式;一个被用于替换搜索到的文本,称为替换模式。
回溯引用可以在替换模式中引用搜索模式中的子表达式
一般使用美元符号 $ 和子表达式编号组成。

例如,以下正则表达式将邮件地址替换为可点击的链接:
搜索模式:
(\w+[\w\.]*@[\w\.]+\.\w+)
替换模式:
$1

你可能感兴趣的:(正则表达式)