Regex在最后一个字符出现之后查找文本,直到另一个字符为止



我正在寻找一个正则表达式来提取以";包括:";并且以最后出现字符"之后的文本结尾;\n*";或";\n•";直到字符";\n〃;。换言之,我正试图找到一个作为"第一次出现"的结局;\n〃;就在最后一次出现";\n*";或";\n•〃;。我试过这个演示,但没有按我的意愿工作。我想把下一句话包括在内,直到";指导\n〃;。我正在使用python,并试图将其提取到我的pandas DataFrame中名为";技能";。";工作描述";列具有信息

df["Skills"]=df["Job description"].str.extract("including:((?:.)*\n[*|•])")

您可以使用

(?s)bincluding:(.*\n[*•]).*?\n(?![*•])
  • (?s)内联修饰符使点与换行符匹配
  • bincluding:匹配前面有单词边界的including:
  • (捕获组1
    • .*\n[*•]匹配到n的最后一次出现,然后是*或•
  • (关闭组1
  • .*?\n匹配到第一次出现n

Regex演示

或者当\n是真正的换行时

(?s)bincluding:(.*n[*•]).*?n(?![*•])

Regex演示

例如

df["Skills"] = df["Job description"].str.extract(r"(?s)bincluding:(.*n[*•]).*?n(?![*•])")

相关内容

最新更新