gpt4 book ai didi

python - 尝试删除 python 文本中的括号时出错

转载 作者:行者123 更新时间:2023-11-28 18:36:58 25 4
gpt4 key购买 nike

我一直在编写一些代码,从其他文件中提取一堆直方图并将它们绘制在一起。为了确保图例正确显示,我一直在尝试采用这些原始直方图的标题并删除一些不再需要的信息。

我不需要的部分采用 (A mass=200 GeV) 的形式,我可以毫无问题地删除括号内的内容,不幸的是,我为括号本身尝试的所有内容都没有效果,否定了删除文本或引发错误的代码。

我试过使用来自的建议; Remove parenthesis and text in a file using PythonHow can I remove text within parentheses with a regex?

我目前的尝试给我的错误是

'str' object cannot be interpreted as an integer

这是代码的一部分:

histo_name = ''

# this is a list of things we do not want to show up in our legend keys
REMOVE_LIST = ["(A mass = 200 GeV)"]

# these two lines use the re module to remove things from a piece of text
# that are specified in the remove list
remove = '|'.join(REMOVE_LIST)
regex = re.compile(r'\b('+remove+r')\b')

# Creating the correct name for the stacked histogram
for histo in histos:

if histo == histos[0]:

# place_holder contains the edited string we want to set the
# histogram title to
place_holder = regex.sub('', str(histo.GetName()))
histo_name += str(place_holder)
histo.SetTitle(histo_name)

else:

place_holder = regex.sub(r'\(\w*\)', '', str(histo.GetName()))
histo_name += ' + ' + str(place_holder)
histo.SetTitle(histo_name)

if/else 位只是因为我传入的第一个直方图没有堆叠,所以我只希望它保留自己的名称,而其余部分则按顺序堆叠,因此是“+”等,但我认为我会把它包括在内。

如果我做错了一些非常明显的事情,我深表歉意,我还在学习!

最佳答案

来自python docs - 要匹配文字“(”或“)”,请使用\( 或\),或将它们包含在字符类中:[(] [)]。

因此,请使用上述模式之一,而不是正则表达式中的普通括号。例如REMOVE_LIST = ["\(A mass = 200 GeV\)"]

编辑:问题似乎与您在正则表达式中使用\b 有关 - 根据上面链接的文档,它也与大括号匹配。我看似可行的例子是,

import re

# Test input
myTestString = "someMess (A mass = 200 GeV) and other mess (remove me if you can)"
replaceWith = "HEY THERE FRIEND"

# What to remove
removeList = [r"\(A mass = 200 GeV\)", r"\(remove me if you can\)"]

# Build the regex
remove = r'(' + '|'.join(removeList) + r')'
regex = re.compile(remove)

# Try it!
out = regex.sub(replaceWith, myTestString)

# See if it worked
print(out)

关于python - 尝试删除 python 文本中的括号时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31476415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com