2016-11-28 10 views
-1

私は無知です、私は正規表現を構築するのを助けてください。テキスト内のすべての文字列hiに一致する必要がありますが、highhillという単語には一致しません。この正規表現を使用して、単語highhillがいっぱいで、たくさんのファイルをスキャンする必要があります。別の単語が含まれているファイル(hi)のみを検索する必要があります。あなたが要求しただけhillまたはhighとして除外することができます正規表現のテキストを無視する方法

hi(?!gh|ll) 

否定先読み(?!)、それはhiabc

デモのような他の単語と一致します:

hi how are you <- MATCH 
abc hiabc <- MATCH 
abc high abc <- NOT MATCH 
hill abc hi <- MATCH 
hill abc high <- NOT MATCH 
high abc hill abc chip <- MATCH 
+1

[単語境界](http://www.regular-expressions.info/wordboundaries.html)を使用します。 。 – Xufox

+0

サポートされている場合は、単語境界 '\ b'を使用します。何語? – chris85

+1

'は「高」と「丘」と「高abc丘abcチップ< - MATCH」と一致しません。なぜですか? – chris85

答えて

2

この正規表現を試してみてください。 https://regex101.com/r/sVDXTq/1

+0

@ chris85はい、私は彼が 'phi'にマッチしたいと思うと思います。あなたが質問を読んだ場合、彼はこの単語に 'hi'が含まれているので、' chip'という単語を持つ最後の例を一致させたいと思っています。 – Ibrahim

+0

はい、質問を再読してコメントを削除しました。まだ質問は私には不明です。正規表現がどこで使われるかによって、これはサポートされないかもしれません。 – chris85

+0

@ chris85ええ、それは可能性だと思います。彼はRegexフレーバーを含まなかった。 LookAheadはLookBehind以上にサポートされているので、これが彼のために働くことを望みましょう。 – Ibrahim

関連する問題