求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式相关的知识,希望对你有一定的参考价值。

\\b开头字符.*?结尾字符\\b,将上面正则表达式中 开头字符,结尾字符替换为实际应该在开头和结尾的字符,如果开头和结尾字符是在正则中具有特殊含义的字符,则还需要转义。

^String regex = "^baiA*C*B$"; Pattern p = Pattern.compile(regex); java.util.regex.Matcher m = p.matcher("这里是要匹配的字符串shu"); while (m.find()) System.out.println(m.group());

扩展资料:

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

参考资料来源:百度百科-正则表达式

参考技术A \b开头字符.*?结尾字符\b
将上面正则表达式中 开头字符,结尾字符替换为实际应该在开头和结尾的字符
如果开头和结尾字符是在正则中具有特殊含义的字符,则还需要转义
参考技术B String regex = "^A*C*B$"; Pattern p = Pattern.compile(regex); java.util.regex.Matcher m = p.matcher("这里是你要匹配的字符串"); while (m.find()) System.out.println(m.group()); 参考技术C 需要用到正序和逆序环视

(?=指定结尾字符).+(?<=指定开头字符)

python通过正则匹配指定字符开头与结束提取中间内容

一、提取包含始末字符

1、起始字符串固定

a = re.findall('起始字符串.*结束字符串',str)

2、起始字符串不固定(即从首字符串提取到固定的字符串结束),用^指定从首字符串开始

a = re.findall('^.*结束字符串',str)

二、不包含始末字符串

#方法1
a = re.findall('(?<=始字符串).*?(?=末字符串)',str)
#方法2
a = re.findall('始字符串(.*?)末字符串',str)
  1. 在 re.findall()的方法中 '始字符串.末字符串’ 可以匹配到相同的值直到最后一个值;如果参数为 '始字符串.?末字符串’则只匹配到第一个值。
  2. 其实使用.*和.+都能提取特定始末字符串中间的内容,下面顺便说下两者的区别。

三、.*和.+正则提取的区别

.:匹配任意字符
*:匹配0个或多个字符
?:非贪婪模式,在符合的条件下,尽可能少的匹配(尽可能短的匹配)

str2 = "aabab"
a = re.findall('a.*?b',str2)	#结果:['aab', 'ab']
b = re.findall('a.+?b',str2)	#结果:['aab']

.?:匹配aab和ab ,因为可以匹配0个字符,所以可以匹配得到ab
.+?:匹配aab,因为+必须a和b中间至少有一个字符,所以排除了ab

四、起始有无^的区别

str2 = "aabab"
c = re.findall('.*',str2)	#结果:['aabab', '']
d = re.findall('^.*',str2)	#结果:['aabab']

五、pandas对具体列的内容通过正则表达式进行数据提取

  1. 使用前要确保该列的类型统一,str或者float格式,最好事先通过astype强制转换一下
  2. df[‘新列名’]=df[‘提取的列名’].str.extract(‘正则表达式’, expand = True)

六、遇到的报错

报错:pattern contains no capture groups
(翻译:模式不包含捕获组)
解决:根据docs ,您需要为 str.extract 指定一个捕获组(即括号)好,提取。

参考文章:https://www.cnblogs.com/ZhangHT97/p/13427325.html
https://www.cnblogs.com/YouJeffrey/p/15209895.html
https://blog.csdn.net/dudu3332/article/details/111555572

以上是关于求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

js正则表达式过滤以指定字符开头以指定字符结尾的文本内容

JS如何判断字符串是以指定字符串结尾

python通过正则匹配指定字符开头与结束提取中间内容

正则表达式位置匹配攻略【转】