我想将“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

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

#1楼 票数:0

首先将您的 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())

#2楼 票数:0 已采纳

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

import re

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

否定前瞻(?!NO :)表示如果此时的文本匹配NO : ,则不匹配。

#3楼 票数:0

尝试这个

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()

#4楼 票数:0

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

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())

  ask by Akshay Godase translate from so

未解决问题?本站智能推荐:

1回复

正则表达式:如何检查文本是否至少包含字符集中的所有字母? [重复]

这个问题已经在这里有了答案: 正则表达式:是否有AND运算符? 12个答案 我有一个字符串(基本上是一个缩写,例如USA,所有字母都用大写字母表示)和文本列表。 我想选择那些包含字符串中所有字母的文本(区分大小写的匹配)。 例如, 我已经尝试过(?=U
3回复

Python 正则表达式检查字符串

我试图在输出上设置正确的版本。 我有这个可能的字符串: 0.0.4.1 # 1。 7.51.4.1 # 2。 0.1.4.1 # 3。 我需要检查,如果“0”。 在开始(设置输出没有 0. 或 0.0.) 输出 1. 将只有"4.1" , 2. 将保持不变, 3. 将是1.
2回复

如何在不保留捕获组的情况下使用regexp拆分字符串?

我想在Python 使用带反向引用的正则表达式拆分文本。 我得到了['blahblah', '``', 'blahblah']但是期待['blahblah', 'blahblah'] 。 如何在不保留捕获组的情况下拆分字符串?
1回复

使用python中的正则表达式在各种情况下在“和”连接之前插入成功的词

使用字符串示例的不同情况下的问题。 情况1 输入字符串: 然而,hBD-1和LL-27表达的基因不受痤疮的影响。 代码: import re str_a = "However, the gene of hBD-1 and LL-27 expression was not affecte
4回复

如何在一个正则表达式中捕获所有正则表达式组?

给定这样的文件: 我想构建一个json对象: 跳过以#开头的行 将线条分成4个部分 传统特征(从开始跨越^到下一个空间) 简化字符(从第一个空间到第二个空间) 拼音(方括号之间的跨度[...] ) 第一个/直到最后一
2回复

通过正则表达式使用替代方法连接术语

问题摘要:我编写了通用正则表达式来从句子中捕获两个组。 此外,我需要将第二组的第三项连接到第一组。 我在正则表达式中使用了and这个词作为分区来分隔句子的两组。 例如: 输入 = '因为 SAC-1 和 RbC-27合成的遗传细胞不是由人脸和动物皮肤中的痤疮 WbC-2 引起的。
2回复

正则表达式,用于捕获和替换字符串中的所有数字(特殊模式除外)

我有一个文本,其中数字以各种可能的方式出现。 例如, 我想用'#'替换所有数字,但以*,单词,下划线,任何字符和数字开头的特殊模式中的数字除外,例如* \\ w + _ [az] \\ d +(即* specially_x00123) 。 我尝试使用环顾四周语法和非捕获组,但是找
4回复

使用正则表达式分组将字符串转换为字典

我有许多这样的txt文件格式- 我想将它们放入看起来像这样的字典中- 我担心要处理所有txt文件所需的时间,因此想要一种方法,该方法将花费尽可能少的时间,而且我不在乎将文本分成几行。 我正在尝试使用正则表达式,但是正努力使其正常工作-我认为我的最后一个正则表达式组不正确。