文本中有换行符、空白符导致正则表达式无法正确匹配
评论
收藏

文本中有换行符、空白符导致正则表达式无法正确匹配

经验分享
夜宵
2024-09-02 15:19·浏览量:1079
夜宵
发布于 2024-09-02 15:191079浏览

问题描述:

   我需要在下面这段文本中,提取<title></title>标签中间的内容,正则表达式写法:<title>(.*?)</title>

   <title>hello world china Consolidated Shipping Guangzhou

   To Caucedo Buying Agent In Shenzhen Ship To Caucedo

   /sudan/ghana Accra

   </title>

放入指令中测试一下,如下图所示,结果却提示未匹配到任何内容,可这个正则表达式明明写的没错,为什么还是匹配不到内容呢?

原因分析:

当文本中存在换行的情况(换行其实也算是一种字符,称之为换行符),简单的用(.*?)的规则,是无法匹配到内容的

解决方案:

1. 使用【文本分割成列表】指令,根据换行符对文本进行分割;使用【列表聚合成文本】指令,将分割后的文本重新拼接起来,此时的文本中就不包含换行符了,用(.*?)的规则就能正常匹配到。

       

2. 优化正则表达式,规则:<title>([.\S\s]*?)</title>

从下图可以看到,这样就能正确匹配内容了。

\s:匹配任意的空白符(包括空格,制表符(Tab),换行符,中文全角空格)
\S:匹配任意不是空白符的字符

收藏1
全部评论1
最新
发布评论
评论