正则表达式 - 获取字符串的特定部分

时间:2017-10-14 17:18:27

标签: regex

我有以下句子:

  

b.g这个大包包被窃听了。

如何使用正则表达式从中排除 b.g

我确信我需要一个负面的预测,但我还不能做到。 像

这样的东西
^(?!b\.g)

3 个答案:

答案 0 :(得分:0)

sed 's/^...//'删除前3个字符," b.g"但我怀疑这是你真正要求的。您的^锚点似乎是红色鲱鱼。

您已经在.期间进行了正确的转义,只需坚持下去:

sed 's/b\.g//'

Python positive lookbehind ?<=可能就是您想要表达的词语:

>>> m = re.search(r'(?<=b\.g)(.*)', 'b.g The big bag of bits was bugged.')
>>> print(m.group(1))
 The big bag of bits was bugged.

答案 1 :(得分:0)

我会这样做:

[^\S].*

[^\S]所做的基本上是跳过任何字符,直到它到达第一个空格。然后开始捕捉。在这种情况下,不需要负面或假定的Lookbehind。

演示:regex101

如果你喜欢用积极的Lookbehind来做,你可以这样做

(?<=b\.g).*

演示:regex101

答案 2 :(得分:0)

在python中你可以这样做:

import re
w = 'b.g The big bag of bits was bugged.'
print w

d = re.compile(r'^b.g\s')
a = re.sub(d, '', w)
print a