pythonresubn
㈠ python replace正则怎么用
# encoding: UTF-8
import re
s="今天是2015年10月1日国庆节,明天是2015年10月2日";
result = s.replace("2015年10月1日", "00") #只能用于字符串替换
print result;
result, number = re.subn("\d+年\d+月\d+日", "00", s) #可以用于正则的替换
print result;
print number;
㈡ 用python搜索文件夹内所有文件,并且根据名字打开其他文档
importglob,os,re
path_a='e:\A'
path_b='e:\B'
a_files=glob.glob('%s\*'%path_a)
b_files=glob.glob('%s\*'%path_b)
forfina_files:
file_name=os.path.basename(f)
file_name_in_folder_b=re.subn(ur'd{8}_d{2}_d{2}_d{2}_','',file_name)
full_path='%s\%s'%(path_b,file_name_in_folder_b)
iffull_pathinb_files:
file_in_b=open(full_path,'r')
㈢ Python 脚本之统计基因组文件中染色体长度及N碱基数目
re模块是Python中的正则表达式调用模块,在python中,通过将正则表达式内嵌集成re模块,程序员们可以直接调用来实现正则匹配。
正则表达式的大致匹配过程是:
re模块所支持的方法有如下:
其中,pattern为匹配模式,由re.compile生成,例如: pattern = re.compile(r'hello')
参数flag是匹配模式,取值可以使用按位或运算符’|’表示同时生效,如 re.I | re.M。可选值有:
注:以上七个方法中的flags同样是代表匹配模式的意思,如果在pattern生成时已经指明了flags,那么在下面的方法中就不需要传入这个参数了。
1. re.match(pattern, string[, flags])
2. re.search(pattern, string[, flags])
3. re.split(pattern, string[, maxsplit])
4. re.findall(pattern, string[, flags])
5. re.finditer(pattern, string[, flags])
6. re.sub(pattern, repl, string[, count])
7. re.subn(pattern, repl, string[, count])
描述
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法
参数
返回值
实例
以上实例输出结果如下:
参考
https://www.cnblogs.com/chengege/p/11190782.html
https://www.runoob.com/python/att-string-strip.html
㈣ python3.6怎么用re.sub去除\n \t \xa0
\xa0 是不间断空白符
我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。
而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。
有如下信息:
'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0,', 'V-neck\xa0\xa0V型领\xa0sleeve\xa0\xa0袖子\xa0,',1
我们如何将其中的\xz0去掉呢,试了re模块的sub方法,发现没有作用,于是又开始查阅相关资料,终于解决了该问题。方法如下:
>>> inputstring = u'\n Door:\xa0Novum \t '
>>> move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
>>> output = inputstring.translate(move)
>>> output
' Door:Novum '12345
另外还有一种更简单的方法,利用split方法:
>>> s
'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0'
>>> out = "".join(s.split())
>>> out
'T-shirt短袖圆领衫,体恤衫'
㈤ python如何用正则匹配字符串后到行尾的所有字符
1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串
result, number = re.subn(regex, newstring, subject)
2.替换所有匹配的子串(使 用正则表达式对象)
rereobj = re.compile(regex) result, number = reobj.subn(newstring, subject)字符串拆分
Python字符串拆分
reresult = re.split(regex, subject)
字符串拆分(使用正则表示式对象)
rereobj = re.compile(regex) result = reobj.split(subject)匹配
下面列出Python正则表达式的几种匹配用法:
1.测试正则表达式是否 匹配字符串的全部或部分regex=ur"..." #正则表达式
if re.search(regex, subject): do_something()
else:do_anotherthing()2.测试正则表达式是否匹配整个字符串regex=ur"...\Z" #正则表达式末尾以\Z结束
if re.match(regex, subject): do_something() else: do_anotherthing()
3. 创建一个匹配对象,然后通过该对象获得匹配细节regex=ur"..." #正则表达式
match = re.search(regex, subject) if match: # match start: match.start() # match end (exclusive): match.end() # matched text: match.group() do_something() else: do_anotherthing()
㈥ python 中 re.sub 和 re.compile 是啥意思呀跪求大神解释。
在python中re是一个常用的模块,主要是通过正则表达式进行字符串处理。它的速度相对自己用 find, replace, split来说,通常更快。当然功能更强大。
正则表达式也是一种语言,所以如果通过re.compile把它编译成对象,会速度快很多。所以我们经常看到这样的语句
exp=re.compile("S+")
m=exp.search(bigtext)
printm.group(0)
这段话等同于
m=re.search("S+",bigtext)
printm.group(0)
re.sub则相当于字符串操作中的replace,比如
sometext=re.sub("(?isu) "," ",sometext)
上面这句话是将回车换行,变成换行。这是为了将windows下的文本文件移到linux下,防止某些软件不兼容所做的处理。
简单的说re.sub是做字符串替换的, re.compile是将正则表达式编译成一个对象,加快速度,并重复使用。
㈦ Python 标准库模块 - re
re模块被称为正则表达式,其作用为,创建一个“规则表达式”,用于验证和查找符合规则的文本,广泛用于各种搜索引擎、账户密码的验证等。
预定义字符:
d:匹配所有的十进制数字0-9
D:匹配所有的非数字,包含下划线
s:匹配所有空白字符(空格、TAB等)
S:匹配所有非空白字符,包含下划线
w:匹配所有字母、汉字、数字a-z A-Z 0-9
W:匹配所有非字母、汉字、数字,包含下划线
特殊字符:
$:匹配一行的结尾(必须放在正则表达式最后面)
^:匹配一行的开头(必须放在正则表达式最前面)
*:前面的字符可以出现0次或多次(0~无限)
+:前面的字符可以出现1次或多次(1~无限)
?:变"贪婪模式"为"勉强模式",前面的字符可以出现0次或1次
.:匹配除了换行符" "之外的任意单个字符
|:两项都进行匹配
[ ]:代表一个集合,有如下三种情况
[abc]:能匹配其中的单个字符
[a-z0-9]:能匹配指定范围的字符,可取反(在最前面加入^)
[2-9] [1-3]:能够做组合匹配
{ }:用于标记前面的字符出现的频率,有如下情况:
{n,m}:代表前面字符最少出现n次,最多出现m次
{n,}:代表前面字符最少出现n次,最多不受限制
{,m}:代表前面字符最多出现n次,最少不受
{n}:前面的字符必须出现n次