Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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 如何在图案后去除所有东西;约翰在x上写道:“我不知道你是谁。”;一串_Python_Python 3.x - Fatal编程技术网

Python 如何在图案后去除所有东西;约翰在x上写道:“我不知道你是谁。”;一串

Python 如何在图案后去除所有东西;约翰在x上写道:“我不知道你是谁。”;一串,python,python-3.x,Python,Python 3.x,我有一个大字符串(来自阅读电子邮件)。现在,当用户回复时,典型的回复如下所示: "On x x x wrote:" 我想去掉这个模式后面的所有文本。然而,我不知道如何识别这种模式 我知道如何去掉某个单词或字符后的所有内容: abc = abc.split('From:', 1)[0] 但是,当您在上的模式和写入的模式之间有文本时,您会怎么做: 样本: \r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com&l

我有一个大字符串(来自阅读电子邮件)。现在,当用户回复时,典型的回复如下所示:

"On x x x wrote:"
我想去掉这个模式后面的所有文本。然而,我不知道如何识别这种模式

我知道如何去掉某个单词或字符后的所有内容:

abc = abc.split('From:', 1)[0]
但是,当您在上的模式
写入的模式之间有文本时,您会怎么做:

样本:

\r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:\r\n

\r\n 2019年2月12日星期二下午1:11+0100,“Name”写道:\r\n

您可以使用正则表达式,然后在完全匹配时可以拆分它。 您可以使用/On/regex/From:/,其中regex是检测“x”的正则表达式


更多信息可以在文档中找到:

您可以使用正则表达式,然后当您有精确匹配时,可以拆分它。 您可以使用/On/regex/From:/,其中regex是检测“x”的正则表达式


更多信息可在文档中找到:

正则表达式将对此进行排序:

re.match(r"\r\nOn.+wrote:", email)[0]
^
表示字符串的开头
On
是单词“On”
+
是任何事物的一个或多个实例
writed:
是“writed”这个词

最后的
[0]
将从电子邮件中获得第一个匹配项
email.strip()
删除空白

例如:

import re

email =  '\r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:\r\n'
extracted = re.match(r"On.+wrote:", email.replace('\r', '').replace('\n', ''))[0]
print(extracted)

Out[163]: 'On Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:' 

正则表达式将对此进行排序:

re.match(r"\r\nOn.+wrote:", email)[0]
^
表示字符串的开头
On
是单词“On”
+
是任何事物的一个或多个实例
writed:
是“writed”这个词

最后的
[0]
将从电子邮件中获得第一个匹配项
email.strip()
删除空白

例如:

import re

email =  '\r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:\r\n'
extracted = re.match(r"On.+wrote:", email.replace('\r', '').replace('\n', ''))[0]
print(extracted)

Out[163]: 'On Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:' 

可以使用以下正则表达式查找模式:

 /(?:On\ x\ x\ x\ wrote\:)/

可以使用以下正则表达式查找模式:

 /(?:On\ x\ x\ x\ wrote\:)/
abc.split(“on.*写:”)[1]

这是一个学习正则表达式的好网站

abc.split(“on.*写:”)[1]



这是一个学习正则表达式的好网站

这比你想象的要难。不同的电子邮件客户端使用不同的短语(不一定是英语)和不同的日期格式。行是否总是以
结尾,写着:
你能发布一个输出示例吗?@BoarGules我同意,但我还没有找到合适的解决方案。因此,为什么我试图用肮脏的方式来做,只是为了让某些东西就位。欢迎任何提示。这比你想象的要难。不同的电子邮件客户端使用不同的短语(不一定是英语)和不同的日期格式。行是否总是以
结尾,写着:
你能发布一个输出示例吗?@BoarGules我同意,但我还没有找到合适的解决方案。因此,为什么我试图用肮脏的方式来做,只是为了让某些东西就位。欢迎任何提示。嗯,我得到:TypeError:“NoneType”对象不可下标。基本上他找不到这个表达。你能举一个电子邮件回复的例子吗?字符串中可能有前导字符,在这种情况下,您可能需要在2019年2月12日星期二下午1:11+0100时删除
^
\r\n,“Name”写道:\r\n\n@JohnAndrews它的输出应该是?问题似乎是前面和后面基本上是\r\n。更新上面的示例。嗯,我得到:TypeError:“NoneType”对象不可下标。基本上他找不到这个表达。你能举一个电子邮件回复的例子吗?字符串中可能有前导字符,在这种情况下,您可能需要在2019年2月12日星期二下午1:11+0100时删除
^
\r\n,“Name”写道:\r\n\n@JohnAndrews它的输出应该是?问题似乎是前面和后面基本上是\r\n。更新上面的示例。x x x x只是一个示例,它可以是任何/(?:On)(?:*)(?:writed)/-这将搜索介于“On”和“writed”之间的任何内容。x x x只是一个示例,它可以是任何/(?:On)(?:*)(?:writed)/-这将搜索介于“On”和“writed”之间的任何内容。