Ⅰ 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模塊的相關介紹