Python 正则表达式在最后一个字符出现后查找文本,直到另一个字符出现
我希望找到一个正则表达式来提取以“include:”开头,以字符“\n*”或“\n•”最后出现后的文本结尾的信息,直到字符“\n”。换句话说,我试图找到一个结尾,即在最后一次出现“\n*”或“\n•”之后第一次出现“\n”。我已经试过了,但没有达到我想要的效果。我想在“指南”之前加上下一句话。 我正在使用python,并试图将其提取到pandas数据框架中名为“Skills”的新列中。“职务说明”列包含以下信息:Python 正则表达式在最后一个字符出现后查找文本,直到另一个字符出现,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我希望找到一个正则表达式来提取以“include:”开头,以字符“\n*”或“\n•”最后出现后的文本结尾的信息,直到字符“\n”。换句话说,我试图找到一个结尾,即在最后一次出现“\n*”或“\n•”之后第一次出现“\n”。我已经试过了,但没有达到我想要的效果。我想在“指南”之前加上下一句话。 我正在使用python,并试图将其提取到pandas数据框架中名为“Skills”的新列中。“职务说明”列包含以下信息: df["Skills"]=df["Job descr
df["Skills"]=df["Job description"].str.extract("including:((?:.)*\\n[*|•])")
你可以用
(?s)\bincluding:(.*\\n[*•]).*?\\n(?![*•])
内联修饰符,使点与换行符匹配(?s)
匹配\b包括:
前面有单词边界包括:
Capturegroup 1(
匹配到最后出现的*\\n[*•]
后跟*或•\n
关闭第1组(
匹配直到第一次出现*?\\n
\n
\\n
是真正的换行符时
(?s)\bincluding:(.*\n[*•]).*?\n(?![*•])
比如说
df["Skills"] = df["Job description"].str.extract(r"(?s)\bincluding:(.*\n[*•]).*?\n(?![*•])")
可能像这样的
包括:(.*?\\n[*•]).\\\n(?![*•])
或者如果换行符是一个真正的换行符\b包括:(.*?\n[*•]).\n(?![*•])
@Thefourthbird,我认为这是不正确的。看这一个。它没有找到最后出现的“\n*”@Prestyy像这样吗?@Prestyy我在“Skills”列中添加了用于获取捕获组1值的代码是的!我只是对返回的组做了一点小小的更改以获取文本,直到“\n”(包括该组)像这样的r”(?s)\n包括:(.\n[•]。?\n)(![*•])”,正如我之前提到的。如果你愿意,你可以编辑它。谢谢你给我答案。