正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

正则表达式:查找某字符串开始和某字符串结束的字符串

正则表达式:查找某字符串开始和某字符串结束的字符串
测试匹配
匹配结果:
替换文本 替换
替换结果:

正则表达式:查找某字符串开始和某字符串结束的字符串

a.*?b

查找以a开始,并且以b结束的字符串

例如:

字符串为:上海12345abcd.opi,.<>北京

patten :上海.*?北京

结果:上海12345abcd.opi,.<>北京


如果不需要包含a,b

(?<=a).*?(?=b)

例如:

字符串为:上海12345abcd.opi,.<>北京

patten :(?<=上海).*?(?=北京)

结果:12345abcd.opi,.<>


以上只能在一行中查找,如果包含回车换行,也就是说跨行,可以使用如下:

(?<=a)[\s\S]*?(?=b)

字符串为:上海12345ab

cd.opi,.<>北京

patten :(?<=上海).*?(?=北京)

结果:12345ab

cd.opi,.<>


包含换行,同时如果查找到是空,也会返回查找到。


如果查找到是空,就不需要返回查找到的话,把*改成+即可

(?<=a)[\s\S]+?(?=b)

例如:

字符串为:上海北京

patten :(?<=上海).*?(?=北京)

结果:无


(?<=a)[\s\S]*?(?=b)

例如:

字符串为:上海北京

patten :(?<=上海).*?(?=北京)

结果:空


总结:


序号 Patten 源字符串 结果 跨行

1 上海.*?北京 上海123ABC北京 上海123ABC北京

2 上海.*?北京 上海北京 上海北京

3 上海.+?北京 上海北京 无匹配

4 (?<=上海).*?(?=北京) 上海123ABC北京 123ABC

5 (?<=上海).*?(?=北京) 上海北京 匹配空字符串

6 (?<=上海).+?(?=北京) 上海北京 无匹配

7 (?<=上海)[\s\S]*?(?=北京) 上海123ABC北京 123ABC

8 (?<=上海)[\s\S]*?(?=北京) 上海北京 匹配空字符串

9 (?<=上海)[\s\S]+?(?=北京) 上海北京 无匹配

————————————————


原文链接:https://blog.csdn.net/sensor_WU/article/details/109350669



推荐分享
 

Copyright © 2014 正则表达式大全 All Rights Reserved

执行时间: 0.0056219100952148 seconds