1

Pythonでは、これが空の文字列のリストを返さないようにするにはどうすればよいですか?

>>> re.findall(re.compile("(?!lala)"),"lala")
['', '', '', '']
4

2 に答える 2

4

lalaテキストが続かない空の文字列、否定的な先読みアサーションを探しています。

空の文字列(文字の間と最後)を持つそのような位置が4つあるため、4つの空の一致があります。

それはあなたが探しているものを正確に返しています、おそらくあなたは代わりに何か他のものを探していましたか?

于 2012-10-09T12:28:37.820 に答える
-1

まず第一に:(?!lala)あまり良い正規表現ではありません。(あなたが自分自身を見つけたように)第二に、findallはそれが見つけることができるほとんどすべてのものを探します、そしてあなたは本当に何かを探しているのではなく、あなたはそれを4文字で探しているので、あなたは4つの空の文字列を取得します。

これを修正するには、正規表現を少し支援する必要があります

このリンクを試してくださいhttp://regexr.com?32dcm

例を示すために、正規表現といくつかのランダムな行をコピーしました。また、以下:

^(?!lala).*$

lalaで始まらないすべての行に一致します。あなたはあなたの正確な望みを明確にしなかったので、これはあなたがやろうとしていることだと私は思います。

于 2012-10-09T12:32:29.090 に答える