如何逐步学会使用递归正则表达式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计8067个文字,预计阅读时间需要33分钟。
递归的正规表达式用于匹配任意嵌套的层次结构或左右对称的结构。例如:
- 匹配任意嵌套的括号结构:`(\(\))`- 匹配左右对称的结构:`(?<=\w)(?=\w)`
一般来说,递归的正则表达式用来匹配任意嵌套层次的结构或左右对称的结构。例如匹配:
((((())))) (hello (world) good (boy) bye) <p>hello world <strong>hello world</strong> </p> abc.def.ghij...stu.vwx.yz abcdcba 123454321
递归正则在正则表达式里算是比较灵活的部分,换句话说就是可能会比较难。下面这个正则表达式是在网上流传的非常广泛的递归正则的示例,它用来匹配嵌套任意次数的括号,括号内可以有其它字符,比如可以匹配(a(bc)de)、(abc(bc(def)c)de)。
# 使用了x修饰符,忽略正则表达式内的空白符号 /\( ( (?>[^()]+) | (\g<0>) )* \)/x
这似乎看不怎么懂?其实即使知道了正则递归的方式,也还是很难看懂(至少,我分析了很久)。
本文共计8067个文字,预计阅读时间需要33分钟。
递归的正规表达式用于匹配任意嵌套的层次结构或左右对称的结构。例如:
- 匹配任意嵌套的括号结构:`(\(\))`- 匹配左右对称的结构:`(?<=\w)(?=\w)`
一般来说,递归的正则表达式用来匹配任意嵌套层次的结构或左右对称的结构。例如匹配:
((((())))) (hello (world) good (boy) bye) <p>hello world <strong>hello world</strong> </p> abc.def.ghij...stu.vwx.yz abcdcba 123454321
递归正则在正则表达式里算是比较灵活的部分,换句话说就是可能会比较难。下面这个正则表达式是在网上流传的非常广泛的递归正则的示例,它用来匹配嵌套任意次数的括号,括号内可以有其它字符,比如可以匹配(a(bc)de)、(abc(bc(def)c)de)。
# 使用了x修饰符,忽略正则表达式内的空白符号 /\( ( (?>[^()]+) | (\g<0>) )* \)/x
这似乎看不怎么懂?其实即使知道了正则递归的方式,也还是很难看懂(至少,我分析了很久)。

