Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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
删除随机定位的短语/句子\r\n(r/Python)_Python_Regex_R - Fatal编程技术网

删除随机定位的短语/句子\r\n(r/Python)

删除随机定位的短语/句子\r\n(r/Python),python,regex,r,Python,Regex,R,如何删除位于所有不同位置的短语或句子 例如,我想删除这样一句话: If you are having trouble viewing this message or would like to share it on a social network, you can view the message online. 但这句话有很多不同的变体,比如: If you are having trouble viewing this message or would like to share

如何删除位于所有不同位置的短语或句子

例如,我想删除这样一句话:

If you are having trouble viewing this message or would like to share 
it on a social network, you can view the message online. 
但这句话有很多不同的变体,比如:

If 
you are having trouble viewing this message or would like to share 
it on a social network, you can view the message online. 

我试图详细说明正则表达式中的每一种变体,但当句子或短语较短时,这是可能的

例如,如果我想删除
,请立即与我联系

我可以指定
请\r\n立即与我联系
请立即与我联系
请立即与我联系\r\n
请立即与我联系
删除此句子。但如果我想删除一个较长的句子,比如我的第一个例子,我不能写出所有可能的变体

总之,如何删除具有相同单词但在所有不同位置都有\r\n的短语和句子?

尝试一下

$ import re
$ remove_text = lambda x, y: re.sub('\s?\r?\n?'.join(x.split()), "", y)

$ remove_text("Please contact me immediately", "Hello Please contact\r\nme immediately World")
> 'Hello  World'
以后还可以删除额外的空格

$ re.sub('\s+', ' ', remove_text("Please contact me immediately", "Hello Please contact\r\nme immediately World"))
> 'Hello World'
此方法有其局限性,例如如果您的实际文本是
,请立即与我联系
,它将被视为相同的文本。

尝试一下

$ import re
$ remove_text = lambda x, y: re.sub('\s?\r?\n?'.join(x.split()), "", y)

$ remove_text("Please contact me immediately", "Hello Please contact\r\nme immediately World")
> 'Hello  World'
以后还可以删除额外的空格

$ re.sub('\s+', ' ', remove_text("Please contact me immediately", "Hello Please contact\r\nme immediately World"))
> 'Hello World'

此方法有其局限性,例如,如果您的实际文本是
请立即与我联系
,它将被视为相同。

此正则表达式模式将查找所有段落(与句子相反):

((?:[^\n\r]+[\n\r])+(?:[^\n\r]+[\n\r])(?=[\n\r]))

试试看@

说明: 在1行或多行上查找([1个或多个非换行字符]后跟[newline字符])

(?:[^\n\r]+[\n\r])+

查找与上述模式匹配的附加行

(?:[^\n\r]+[\n\r])

查找其他[换行符]
IE:两组文本

之间的空行
(?=[\n\r])


第二组和第三组组合起来等于段落的最后一行。

此正则表达式模式将找到所有段落(与句子相反):

((?:[^\n\r]+[\n\r])+(?:[^\n\r]+[\n\r])(?=[\n\r]))

试试看@

说明: 在1行或多行上查找([1个或多个非换行字符]后跟[newline字符])

(?:[^\n\r]+[\n\r])+

查找与上述模式匹配的附加行

(?:[^\n\r]+[\n\r])

查找其他[换行符]
IE:两组文本

之间的空行
(?=[\n\r])


第二组和第三组的组合相当于段落的最后一行。

根据这些句子出现的空间,不应该有
\r
\n
?根据这些句子出现的空间,不应该有
\r
\n