Python常规语法删除@ string直到空格

时间:2013-01-29 11:06:11

标签: python regex

我尝试谷歌一些,但它太具体了,我对python的正则表达式完全不熟悉。我可以知道如何在符号@之后删除整个字符串,直到下一个空格?虽然这是我做的但没有运气

s = re.sub('@[^\s]+', '',s)

4 个答案:

答案 0 :(得分:1)

以下正则表达式怎么样?

re.sub(r'@.*?(?=\s)', '', s)

示例:

>>> re.sub(r'@.*?(?=\s)', '', 'text before `at`@text-right-arter`at` text after first space')
'text before `at` text after first space'
>>> 

它的行为与您的解决方案完全相同(更新:实际上并非如此。请参阅下面的 nhahtdh 的评论)。

答案 1 :(得分:1)

我认为这对你不起作用,因为你也删除了'@'。

  

我删除整个字符串 符号@后直到下一个空格

试试这个:

In [1]: s='foo@barxyz trash trash'

In [2]: import re

In [3]: re.sub('(?<=@)[^\s]+','',s)
Out[3]: 'foo@ trash trash'

答案 2 :(得分:0)

从你提供的内容作为输入和背景。

re.sub('@\S* ','',string)

请参阅此处http://codepad.org/8KmXy7aW

答案 3 :(得分:0)

我认为这就是你想要的:

>>> import re
>>> s = 'unchanged1 @remove unchanged2'
>>> print re.sub('@\S+', '', s)
unchanged1  unchanged2

根据OP:'删除符号@后的整个字符串直到下一个空格'

删除多余空格:

>>> print re.sub('@\S+ ', '', s)
unchanged1 unchanged2

包含'@':

>>> print re.sub('@\S+ ', '@', s)
unchanged1 @ unchanged2