试图用另一个词替换特定词,但我没有得到确切的结果。有没有使用正则表达式的解决方案?
Trying to replace the Specific word with another word but i didn't get exact result. Is there any resolution using regex?
我想将 '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: 更改为 ***,然后再替换回 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())
用正则表达式很容易说 "match "REF "
but only if it is not followed by "NO :"
":
import re
str_data = re.sub(r'REF (?!NO :)', 'REF:', str_data)
否定前瞻(?!NO :)
意味着如果此时的文本匹配NO :
,则不匹配。
试试这个
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'\bREF\s+(?!\s*NO\s+:)', 'REF:', str_data)
return str_data
print(test())
我想将 '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: 更改为 ***,然后再替换回 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())
用正则表达式很容易说 "match "REF "
but only if it is not followed by "NO :"
":
import re
str_data = re.sub(r'REF (?!NO :)', 'REF:', str_data)
否定前瞻(?!NO :)
意味着如果此时的文本匹配NO :
,则不匹配。
试试这个
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'\bREF\s+(?!\s*NO\s+:)', 'REF:', str_data)
return str_data
print(test())