

我需要在下面这段文本中,提取<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:匹配任意不是空白符的字符