您只需要使用re.match
和re.sub
從re
模塊,用下面的正則表達式
import re
my_str = 'this is the first part of string 1/32 part this is the second part of string'
my_regex = r'(\d+/\d+\s+part)'
if re.match(my_regex, my_str):
print(re.sub(my_regex, r'\1,', my_str)) # this will print: 1/32 part,
# ...
裸沿如果需要多行來匹配相同的正則表達式,則需要向正則表達式添加一些額外的標誌。請參閱here此類標誌的列表。
你可以看到正則表達式here
快速更換(有可能是更好的方式)將也部分之前和所需的匹配部分匹配後,做一些事情,如:
import re
my_str = 'this is the first part of string 1/32 part this is the second part of string'
my_regex = r'(.*)(\s+\d+/\d+\s+part)(.*)'
condition = re.match(my_regex, my_str)
if condition:
part = re.sub(my_regex, r'\2,', my_str)
x = condition.group(1) + part + condition.group(3)
print(x)
將輸出修改後的字符串:
這是串1/32的第一部分某種程度上,這是 串的第二部分
與所有的一個簡單的聯機功能上面會:
import re
def modify_string(my_str, my_regex):
return re.sub(my_regex, r'\1,', my_str)
if __name__ == '__main__':
print(modify_string('first part of string 1/32 part second part of string', r'(\d+/\d+\s+part)'))
但我建議你保持狀態。 以防萬一。
爲什麼'[1-1000]'?你確切的要求是什麼?如果有'/'還有沒有關係? –
注意'[1-1000]'是一個*字符組*,因此只會匹配'0'和'1'... –
您只需要匹配'\ d +/\ d + \ s + part' – anubhava