python - 正则表达式在最后一次出现字符后查找文本直到另一个字符
问题描述
我正在寻找一个正则表达式来提取以“包括:”开头并以字符“\n*”或“\n•”最后一次出现之后的文本结尾的信息,直到字符“\n”。在换句话说,我试图在最后一次出现“\n*”或“\n•”之后找到一个结尾作为“\n”的第一次出现。我已经尝试过这个演示,但没有按我的意愿工作。我想包括下一句,直到“指导。\n”。我正在使用 python,我试图将其提取到我的 pandas DataFrame 中名为“Skills”的新列中。“职位描述”列包含信息
df["Skills"]=df["Job description"].str.extract("including:((?:.)*\\n[*|•])")
解决方案
你可能会使用
(?s)\bincluding:(.*\\n[*•]).*?\\n(?![*•])
(?s)
内联修饰符使点匹配换行符\bincluding:
匹配including:
前面有一个单词边界(
捕获组 1.*\\n[*•]
匹配直到最后一次出现 ,\n
后跟 * 或 •</li>
(
关闭组 1.*?\\n
匹配直到第一次出现\n
或者什么时候\\n
是真正的换行符
(?s)\bincluding:(.*\n[*•]).*?\n(?![*•])
例如
df["Skills"] = df["Job description"].str.extract(r"(?s)\bincluding:(.*\n[*•]).*?\n(?![*•])")
推荐阅读
- python - 当我运行此代码时,它显示无效参数
- javascript - 关于 JS 中的“包装器对象”的这种观点是否属实
- .net-core - AutoMapper 9 通用扩展静态类
- python - 使用 Exif 元数据获取图片的唯一 ID
- html - IE11 的 CSS Grid 自动重复列 flexbox 替代方案
- powershell - 在 powershell 中删除或修改选定数量的用户或邮箱
- cassandra - Cassandra:选择查询时出现 cqlsh noHostAvailable 错误
- node.js - 如何在服务器上的部署中解决“找不到错误:make”
- macos - 如何从 Mac OSX 系统中删除 Java Web Start.app - 15.0.1?
- python-2.7 - 将所需项目从一个字典保存到另一个字典