Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式在最后一个字符出现后查找文本,直到另一个字符出现_Python_Regex_Pandas_Dataframe - Fatal编程技术网

Python 正则表达式在最后一个字符出现后查找文本,直到另一个字符出现

Python 正则表达式在最后一个字符出现后查找文本,直到另一个字符出现,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我希望找到一个正则表达式来提取以“include:”开头,以字符“\n*”或“\n•”最后出现后的文本结尾的信息,直到字符“\n”。换句话说,我试图找到一个结尾,即在最后一次出现“\n*”或“\n•”之后第一次出现“\n”。我已经试过了,但没有达到我想要的效果。我想在“指南”之前加上下一句话。 我正在使用python,并试图将其提取到pandas数据框架中名为“Skills”的新列中。“职务说明”列包含以下信息: df["Skills"]=df["Job descr

我希望找到一个正则表达式来提取以“include:”开头,以字符“\n*”或“\n•”最后出现后的文本结尾的信息,直到字符“\n”。换句话说,我试图找到一个结尾,即在最后一次出现“\n*”或“\n•”之后第一次出现“\n”。我已经试过了,但没有达到我想要的效果。我想在“指南”之前加上下一句话。 我正在使用python,并试图将其提取到pandas数据框架中名为“Skills”的新列中。“职务说明”列包含以下信息:

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)(![*•])”,正如我之前提到的。如果你愿意,你可以编辑它。谢谢你给我答案。