regex Python正则表达式从较大字符串中提取hashtag

fcipmucu  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(111)

我有一个pandas数据框,其中包含一列社交媒体标题。在使用主题标签的地方,它们以以下格式显示{hashtag|\#|WorldWaterDay}。我想循环遍历这一列,并将这些hashtags字符串重新格式化为#WorldWaterDay
我对正则表达式很生疏了。我可以使用^{.*}$轻松地找到字符串(假设它们都以{}开头和结尾),但我正在寻找一种高效的正则表达式来查找和重新格式化这些标签。我可以找到并拆分hashtag,删除|,然后通过几个步骤将hashtag附加到hashtag文本,但我希望有人能提供一些关于纯正则表达式解决方案的建议。

yyhrrdl8

yyhrrdl81#

你只需要一个匹配现有格式的正则表达式:

\{hashtag\|\\#\|([^}]+)}

其匹配:

  • \{hashtag\|\\#\|:字面意思为{hashtag|\#|
  • ([^}]+):一些非}字符,在组1中捕获
  • }:一个}字符

然后可以将其替换为#\1。在python中:

df['Caption'] = df['Caption'].str.replace(r'\{hashtag\|\\#\|([^}]+)}', r'#\1', regex=True)

相关问题