ここに行きます:
私はPHPアプリケーションをコーディングしていますが、そのための新しい公式ドメインがあり、ここにすべてのFAQがあります。スクリプト内の一部のファイルには、古いFAQドメインへのヘルプリンクが含まれているため、新しいドメインを使用してそれらを置き換えたいと思います。ただし、コメントまたはコメントブロックの下にある場合にのみ、古いドメインにリンクしているURLを保持したいと思います(自己参照やその他のドキュメントに古いドメインを使用しています)。
したがって、基本的に、私が達成したいのは、次の場合に機能する正規表現です。
- すべての行で出現
example.com
するすべての行に一致します*。 - 行全体と一致させるのではなく、
example.com
文字列のみと一致させてください。 //
行が、、、/*
または「*」で始まる場合example.com
、その1行のどのインスタンスとも一致しません(ただし、コメントブロックが開かれたのと同じ行で閉じられている場合、これは問題になる可能性があります)。
私は通常、次のようにブロックコメントを書きます。
/* text
* blah
* blah
*/
そのため、「example.com」が、、、または「*」の後//
にある場合は、「example.com」と一致させたくありません。/*
私はそれがこのようなものになるだろうと思いました:
^(?:(?!//|/\*|\s\*).?).*example\.com
ただし、これには1つの問題があります。「example.com」だけではなく、行全体に一致します(これにより、主に2つ以上の「example.com」文字列が1行に一致する場合に問題が発生します)。
誰かが私の正規表現を修正するのを手伝ってもらえますか?注:grepWinなどのツールを使用して、すべてのファイルを一度にローカルで編集できるため、PHP正規表現である必要はありません。
ああ、次のようにブロックコメントを一般化する方法があるかどうか教えてください。一度見つかったら、見つかるまで/*
一致させないでください。それは非常に便利です。example.com
*/
一般的な(言語に依存しない)正規表現でそれを実現することは可能ですか?