2

私はfindFoo()のようなメソッドを含むたくさんのPHPクラスファイルを持っています。 find()で置き換えるために、これらのすべての発生を(私のIDEまたはgrepを使ってRegEx検索で)探したいと思っています。適切なRegExはfind[a-zA-Z0-9]+\(です。しかし、いくつかの方法があります(例えば、findBarByBuz())。検索から除外したいと思います。名前に「By」または「With」と表示されます。RegEx文字列の途中で文字列を除外する方法は?

"find" + "stringWithoutByAndWithoutWith" + "("のような文字列に一致するRegExを構築するにはどうすればよいですか?

答えて

2

あなたは否定先読み使用することができます。byまたはwithが0以上の単語文字の後に発見された場合に

/find(?!\w*(?:by|with))\w+\(/i 

RegEx Demo

(?!\w*(?:by|with))は試合を失敗する否定先読みです。 \w[a-zA-Z0-9_]に相当します。

/iは大文字と小文字を区別しない一致です。

+1

ありがとうございました!ちょうど1つの注記: ' - 'を削除してください、ここでは不要です。これはできません。なぜなら、SOの編集がleasの '6 '文字に影響する必要があるからです。 – automatix

+0

はい、完了しました。 – anubhava

関連する問題