我想提取两个连字符之间或一个连字符与零之间的单词。但是假设我不应该知道连字符之前/之间/之后的单词。 我尝试过使用正则表达式模式进行搜索。当使用Web站点测试正则表达式时,捕获的组在python中是不同的
例如:
df = pd.DataFrame({'col1': ['tumPar-PredCorr', 'lung-Med-Pred', 'liver-t1flair-FromMed', 'kidney-t1ce-Pred', 'tumMed-Pred']})
新列中的结果应为:PredCorr、Med、t1flair、t1ce、Pred
使用python中的以下代码:
def extract_signals(row):
if row!="":
return re.search(r"([-^]\w+)",row).group()
df["signals"]= df["col1"].apply(extract_signals)
我几乎得到了结果,因为我有-PredCorr,-Med,-t1flair,-t1ce,-Pred 因此,在这些单词之前没有连字符将是非常棒的。 请注意,正则表达式的这些模式在python中也给出相同的结果:([-]\w+)或(-\w+)
多谢各位
你可以用
见regex demo。正则表达式匹配
-
-连字符([^-]+)
-组1:除-
之外的一个或多个字符(?:-|$)
-一个{Python测试:
相关问题 更多 >
编程相关推荐