我想将"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())