正则表达式(Python)-匹配所需单词之前的所有内容

时间:2018-10-31 18:56:50

标签: python regex

我只是想在字符串“ From:”首次出现之前剥离每个字符和回车符等文件。

文字示例-

“文件名123 档案日期xxxxx

其他文字

来自:john@example.com...。”

我似乎不能只抓住“发件人:”之前的所有内容,我认为这很简单,但是没有。任何帮助将不胜感激。非常感谢

3 个答案:

答案 0 :(得分:0)

您可以尝试此正则表达式,

(?s).*?From(.*)

并将其替换为\ 1

说明:

(?s) --> Enables . to match new lines
.*?From --> captures anything before first occurrence of From
(.*) --> Matches rest of the input and stores it in group 1

演示,https://regex101.com/r/Q8eFKL/2

答案 1 :(得分:0)

使用积极的前瞻:

>>> re.findall('^(.*)(?=From:)', your_text)

这将阻止它匹配不包含“发件人:”的模式,因此其格式可能不符合您的期望。

答案 2 :(得分:0)

Dot(。)匹配换行符以外的所有内容。所以我的方法是:

(.|\n|\r)*(?=From:)
  • 第一种选择。
    • 。匹配任何字符(行终止符除外)
  • 第二个替代项\ n
    • \ n与换行符(ASCII 10)匹配
  • 第三个​​替代项\ r
    • \ r与回车符(ASCII 13)匹配
  • 正向超前(?= From:)
    • 断言以下正则表达式匹配From:匹配字符
      发件人:从字面上看(区分大小写)