我有以下句子:
b.g这个大包包被窃听了。
如何使用正则表达式从中排除 b.g ?
我确信我需要一个负面的预测,但我还不能做到。 像
这样的东西^(?!b\.g)
答案 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