Regex——如何提取每个括号第二个连字符后的文本



我是Regex的新手,语法让我很困惑。这是原始字符串字段:(f-dqcn-bus1),(f-cdqc-bus2)

我希望得到像bus1,bus2这样的新结果。

可能有一个或多个括号,但总线名称总是在每个括号的第二个连字符之后。我计划使用str.findall(regex_pattern)进行提取,有人能在这里帮助开发regex_pattern吗?非常感谢!

我不确定这是否适用于您,但我以前尝试过,我有点喜欢Pandas中的.str方法!

import pandas as pd
data = [('f-dqcn-bus1'), ('f-cdqc-bus2')]
df = pd.DataFrame(data, columns=['column_name'])
tuple(df['column_name'].str.split('-', n = 2, expand = True)[2])
# ('bus1', 'bus2')

匹配短划线后和括号前的字符,这些字符既不是短划线也不是括号:

businesses = re.findall(r"(?<=-)[^-)]+(?=))", str)

观看现场演示。

最新更新