我需要替换存储在JSON文件中的部分名称,例如替换它:
"name":"S. tuberosum subsp. andigenum (ADG) 2-1-2-2"
用这个:
"name":"S. tuberosum subsp. andigenum (ADG)"
即。我需要删除名称后面的数字和连字符。
我正在使用re.sub
,但我无法弄清楚正确的表达方式,尤其是如何用一部分替换字符串。
我试过这个:
new_text = re.sub(r"(name.[:]..*)\s\d+-+", "name.[:]..*" , initial_text)
答案 0 :(得分:0)
您只需要将要删除的部分与re.sub
匹配,并将其替换为空字符串:
import re
string = '"name":"S. tuberosum subsp. andigenum (ADG) 2-1-2-2"'
print(re.sub('(\s(\d-)*\d)', '', string))
输出
"name":"S. tuberosum subsp. andigenum (ADG)"
答案 1 :(得分:0)
试试这个:
re.sub("(\d+-\d+-*)", "" , initial_text)
这将取代'number-number-(可选)',希望它有效
答案 2 :(得分:0)
你可以试试这个:
import re
s = '"name":"S. tuberosum subsp. andigenum (ADG) 2-1-2-2"'
new_s = re.sub('(?<=[A-Z]\))\s[\d-]+', '', s)
输出:
'"name":"S. tuberosum subsp. andigenum (ADG)"'