質問の表現が不十分である場合は申し訳ありません(またはすでに質問されている場合。私は本当にそれを見つけようとしました)。
文字クラスの特定の文字がたまたま最後の文字である場合 (他の場所に残っている可能性があります)、それを一致から除外することは可能ですか? 私が取り組んでいるのは、より大きな文字列で URL を見つけることと似ており、パターンにピリオドを含める必要がありますが、最後の文字がピリオドの場合は、文の終わりとして除外します。
したがって、パターン(他のURLのもの)では「(/ [a-zA-Z0-9._-] *)?」存在する場合、最後の期間のみを除外する方法はありますか? 上記は具体的にはドメインの後の uri セグメントですが、一致させたいのは
"/some_uri/segments.php"
両者に
"www.domain.com/some_uri/segments.php"
と
"www.domain.com/some_uri/segments.php."
複数のピリオドが uri に存在することを許可します。
上記が明確でない場合は、単語の最後の文字が「z」である場合にのみ、単語の最後の文字を除外する方法を求めていると想像してください。したがって、'dozzer' と 'dozzerz' は両方とも、文構造内で 'dozzer' として一致します (文字列の END の位置には一致しません)。先読みなどで遊んでみましたが、まだ方法が見つかりません。(単一の正規表現で)それが不可能かどうか疑問に思っています。
御時間ありがとうございます!
編集
明確にしておらず申し訳ありませんが、テキストのブロック内で一致を実行する必要があります。私がやっていることは、テキストを調べてすべての Web アドレスを見つけ、それらにマークアップを適用することです。したがって、$ などの位置演算子を使用して文字列の末尾を一致させることはできません。これが最大の問題でした。
この後に機能する回答を他の誰かが投稿しない限り、M477h3w1012に同意し、正規表現だけでは達成できないと結論付けなければならないと思います。一致を見つけた後、条件付きチェックを実行して、末尾にピリオドがあるかどうかを判断する必要があります。しかし、もう一度、お時間とご協力をいただき、誠にありがとうございました。:-)