这几天在做一个正则化的任务,需要正则出一个文件中两个字符之间的所有东西,这是在查找过程中找到的一些方法,在此记录下来。(以下都是在python下实现的)
import re
file = open(r'C:\\Users\Administrator\Desktop\文件名.out','rb') #读取文件
source = file.read()
source = source.decode('utf-8')
方法一:reg = re.findall(r".*a(.*)b",source)
#该方法可以读到字符 ‘a’ 和’b’之间的所有字符,但是不能跨行,'a‘和’b’需要在同一行。
方法二:reg = re.findall(r'\[([\s\S]+?)\]',source)
#该方法可以正则出[]之间的内容,但[]内好像必须有东西,可以跨行正则,即’[‘和‘]’可以不在同一行。[\s\S]表示匹配所有字符,包括换行符,[\w\W]也有相同的功能,其中[\s]表示空白匹配,[\S]表示非空白匹配。当然通配符’.‘也可以匹配字符,但是’.'不能匹配换行符。
方法三:reg= re.findall(r'\[((?:.|\n)*?)\]',source)
# 和方法二功能一样,但就算 [ ] 内没有东西,也能读取出来。
方法四:reg = re.findall(r'(?<=a)\d+\.?\d*(?=b)', source)
#可以读到‘a’ 和‘b’ 之间的数字。(?<=想要的字符)表示匹配该字符之后的字符串,(?=想要的字符)表示匹配该字符之前的字符串,而\d+.?\d* 表示读取数字,如果不是数字,就不会被匹配到。
以上re.findall返回的都是列表,列表的每个元素的type都是字符串(如果有的话)。
###**********************************
方法五:关于正则表达式的零宽断言,如下:
import re
mystr = 'a111223344bb'
my = re.findall(r".*a(.*)b",mystr)
print(my)
my1 = re.findall(r".*a(.*)(?<!b)b",mystr)
print(my1)
还是个菜鸟,有不对的地方,还请指出。很多都是从其他博客看来的,但是也忘记在哪看的了,就都没有标明了。
以上,仅作为个人记录。第一次写hhhhh.
string = "xxxxxxxxxxxxxxxxxxxxxxxx entry '某某内容' for aaaaaaaaaaaaaaaaaa"
result = re.findall(".*entry(.*)for.*",string)
for x in result:
print x
# '某某内容'
以上这篇使用Python 正则匹配两个特定字符之间的字符方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
import re
pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+') # 匹配模式
string = 'Its after 12 noon, do you know where your rooftops are? http://tinyurl.com/NYCRooftops '
url = re.findall(pattern,stri
正则表达式又称为正规表达式、常规表达式、在代码中常简写为regex、regex或RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定的字符串。这里不得不提的是shell三剑客:grep,sed,awk。............
import re# 匹配两个字符中间的所有字符a = 'life is short, i use pythoni love it'r = re.search('(.*)(.*)', a)# python中正则匹配,如果不加(),默认是一个分组,group()中的参数,如果是0,默认是所有组,即返回整个字符串# 如果是要访问自定义的组的元素,则需要从1开始print(r.group(0)) #l...
我需要实现一个Python正则表达式来搜索所有出现的A1a或{}或{}或{}或{},其中:A可以是A到Z。在1可以是1到9。在a可以是a到z。在只有三个字符的字母数字字母,用下划线、破折号或什么都不分隔。搜索字符串中的大小写需要完全匹配。在我遇到的主要问题是,有时这三个字母的组合会通过短划线和下划线连接到其他文本。同时创建相同的正则表达式来搜索A1a、A-1-a和{}。在我还忘了提到这是一个XML...
本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。