尝试用另一个单词替换特定单词,但我没有得到确切的结果。是否有使用正则表达式的任何解决方案?



我想将"REF"标记替换为"REF:"。

请检查以下代码:-

def test():
str_data = "REF PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY"
tag_list = ["REF ", "BMS:", "REF NO :"]
for each_value in tag_list:
if each_value[-1] == " ":
print(each_value)
str_data = str_data.replace(each_value, each_value[:-1] + ":")
print(str_data)
test()

我试图解决它,但得到了以下输出。

Original String = "REF PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY"

My Result = REF:PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF:NO : MUMBAI UNIVERSITY

Expected Result = REF:PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY

有什么办法解决吗?有正则表达式吗?

使用正则表达式,很容易说出"匹配"REF ",但前提是后面没有"NO :"":

import re
str_data = re.sub(r'REF (?!NO :)', 'REF:', str_data)

负前瞻(?!NO :)意味着如果此时的文本与NO :匹配,则不匹配。

首先将REF NO:更改为***,然后替换为REF NO:这是你的答案:

def test():
str_data = "REF PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY"
str_data = str_data.replace("REF NO :", '***').replace("REF ", 'REF: ').replace('***', 'REF NO :')
return str_data
print(test())

尝试这个

def test():
str_data = "REF PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY"
str_data = str_data.split("REF NO :")
for index,data in enumerate(str_data):
if "REF " in data:
data = data.replace("REF ", "REF :")
print(data)
str_data[index] = data

print("REF NO :".join(str_data))
test()

这将修复正则表达式格式的

def test():
import re
str_data = "REF PUNE UNIVERCITY BMS:KOLHAPUR UNIVERSITY REF NO : MUMBAI UNIVERSITY"
str_data = re.sub(r'bREFs+(?!s*NOs+:)', 'REF:', str_data)
return str_data
print(test())

最新更新