2016-09-22 15 views
1

すべての文字列が "animals。*"のように見える正規表現を書いてみたい* '*'の場所にはシンボルは使用できますが、 'elephant'は使用できません。正規表現は1単語を除外します

結果は次のようになります。

入力:animals.fox =>結果:animals.fox

入力:animals.kitten =>結果:animals.kitten

しかし

入力:animals.elephant =>結果:なし

正規表現を書きますが、正しく動作しません。それを修正するには?

animals\.(?!elephant) 
+1

はあなたを意味するかを参照してください:

(あなたは、単に文字または文字/数字/アンダースコアにマッチするために必要なものに応じて)あなたのパターンの終わりに[a-zA-Z]+または\w+を追加します。単語を最後に合わせる必要がありますか? ['animals \。(?!elephant)\ w +'](https://regex101.com/r/pT3cL6/1)を試してください。 –

+1

@WiktorStribiżewЗачемписатьнарусскомязыке? – nowox

答えて

2

唯一の問題は.の後に単語をマッチングすることによるものと思われます。あなたが使用した先読みは、一致した文字を出力に入れない、ゼロ幅アサーションのです。現在の位置の右側にあるテキストがそのパターンと一致しないかどうかをチェックするだけです。一致する場合、一致は失敗します。それ以外の場合は、真のが返されます。だから、あなたは.の後の単語を消費する必要があります。

animals\.(?!elephant)\w+ 

regex demo

関連する問題