我如何匹配' x'在右侧有任何数量的空白,除非' x'之后是另一个' x'?
到目前为止,我有:
find_nonSpace_rightSideOf_x = re.compile(r'x[\s]*')
但显然,即使文字是“xx”,这仍然会被捕获。我怎样才能抓住这个问题' xaldkfjda' x' x'' x adkf'等,而不是第一个x:' xxaldkfjdlk& #39;,' xx'等等?
编辑:最后一句的结尾应该是" ...但不是第一个TWO x:' xxaldkfjdlk',' xx'等等?"简而言之,我想要抓住一个x'但从来没有两个x' xx' - 并排。这有帮助吗?感谢您的投入到目前为止!
答案 0 :(得分:2)
使用负面预测断言:
re.compile(r'x(?!x)')
将抓住 x
'xxaldkfjdlk'
但不是第一个x
要捕捉空格,请添加:\s*
re.compile(r'x(?!x)\s*')
一些试验:
>>> m = re.compile(r'x(?!x)\s*')
>>> m.search('xx ')
<_sre.SRE_Match object; span=(1, 4), match='x '>
>>> m.search('xxaldkfjdlk')
<_sre.SRE_Match object; span=(1, 2), match='x'>
>>> m.search('xxxx')
<_sre.SRE_Match object; span=(3, 4), match='x'>
答案 1 :(得分:2)
答案 2 :(得分:2)