Ⅰ python正则表达式替换字符串问题
按照你的要求在不改变name()函数的前提下,把两个"xyz"都替换为"xyz111"的Python程序如下
importre
defname(matched):
newname=matched.group('name')+'111'
returnnewnamestr='helloxyz,nihaoxyz'
strnew=re.sub(r"(?<=hello|nihao)(?P<name>w+)",name,str)
print(strnew)
运行结果
helloxyz111,nihaoxyz111
Ⅱ 用python正则表达式替换字符串问题 我用python写一个计算器,想用正则表达式将字符串中的一些内容替换,
先用正则表达式 sin((d+(.d+)?)) 取第一捕获组的数据
把sin(45)中的角度值angle匹配出来,然后计算出sin(angle)的值value,
最后用正则表达式 "sin("+angle+")" 替换成String.valueOf(value) //value的字符串形式
我给你一个完整的java语言的例子,你看看吧.
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassAA{
publicstaticvoidmain(String[]args){
Strings="1+2*3-(5/6)+sin(45)-ln(100)";
Stringregex="sin\((\d+(\.\d+)?)\)";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
while(m.find()){
Stringangle=m.group(1);//取出sin函数的角度值
doubled=Double.parseDouble(angle);//把角度值转换成double型
doublevalue=Math.sin(d/180*Math.PI);//把角度值转换成弧度值然后计算sin函数值
s=s.replaceAll("sin\("+angle+"\)",String.valueOf(value));//把相应的sin(45)字符串替换成sin函数值
System.out.println(s);//输出结果,你也可以在程序最后输出结果,也就是在while循环完成后输出结果
}
}
}
运行结果
1+2*3-(5/6)+0.7071067811865475-ln(100)
Ⅲ python正则表达式替换问题
importre
s='''01大堆内容02大堆内容03大堆内容'''
t=re.sub(r'([0-3]d)',r' 1',s)
print(t)
Ⅳ python正则表达式如何用已知字符串(如"aaa")替换文件中匹中的分组内容,不是匹中的全部,而是其中一个组
import re
s = '1234567890'
pattern = re.compile(r'(34)(\d+)(78)')
print(pattern.sub(r'\1aaa\3',s))
把两边的也加括号,替换的时候加上 \1 \3就行
Ⅳ Python如何替换list中的字符
1、用字符串本身的replace方法
复制代码代码如下:
a.replace('word','python')
输出的结果是hello
python
2、用正则表达式来完成替换:
复制代码代码如下:
import
re
strinfo
=
re.compile('word')
b
=
strinfo.sub('python',a)
print
b
输出的结果也是hello
python
至于用哪个方法的话,看你自己的选择了。
Ⅵ Python正则表达式如何进行字符串替换
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正则表达式在字符串替换中的具体介绍。
Ⅶ Python正则表达式的使用问题
importre
p1=re.compile(r'^[aeiou][a-z]*')
p2=re.compile(r'^![aeiou][a-z]*')
m=p1.search('asd')
n=p2.search('asd')
printm
printn
result:
<_sre.SRE_Match object at 0x0212B598>
None
说明第一个匹配成功,第二个匹配失败
你的正则有问题,如果要匹配首字母需要用 ‘^’
Ⅷ Python pandas 怎样用正则表达式替换
pandas 没用过,不过就数据出来说
如果只想得到差,较差,良好,这些评语的话
正则可以用 : (.*?)状况
效果:
Ⅸ python 正则表达式re.sub函数替换内容的一个比较基础的问题
正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub方法提供一个替换值,可以是字符串或函数,和一个要被处理的字符串。
1、这里的sub方法,是被编译成‘RegexObject’实例后的实例的方法
Sub(replacement,string[,count =0 ])
1)返回的字符串是在字符串中用RE最左边不重复的匹配来替换。如果模式没有被发现,字符将没有被改变的返回。
2)可选参数count是模式匹配后替换的最大次数;count必须是非负整数。缺省值是0表示替换所有的匹配。
例子:
2、模块级函数:sub方法
注:这些函数(包括sub函数)使用RE字符串作为第一个参数,而后面的参数与相应的“RegexObject”方法的参数相同,返回要么是None,要么是一个‘MatchObject’实例。
(实际sub返回的是字符串,,两者说法不一致,以实际为准)
Re.sub的作用在于:使用给定的替换内容将匹配模式的子字符串(最左端并且非重叠的子字符串)替换掉
3、作为替换的组号
在2的例子中,只是把一个字符串用其他的内容替换掉了。用replace这个字符串方法能轻松达到同样的效果。而正则表达式允许以更灵活的方式进行搜索,同时它们也允许进行功能更强大的替换。
见证re.sub强大功能的最简单方式就是在替换字符串中使用组号。在替换内容中以‘\\n’型式出现的任何转义序列都会被模式中与组n匹配的字符串替换掉。例如,假设要把‘*something*’用‘<em>someting</em>’替换掉,前者是在普通文本文档(比如Email)中进行强调的常用方法,而后者则是相应的HTML代码(用于网页)
这里把所有的* *含的字符串都替换掉了。刚开始我以为只替换*world*。记一笔。
Ⅹ Python正则表达式怎么提取出列表
import re
pattern = re.compile(r'正则')
items = re.findall(pattern,你需要匹配的东西)
type(items)
list
还有其他的 你可以看一下re模块的相关介绍