会社のブログログイン登録スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。485件0正規表現で特定文字列より前にマッチさせたいのですが、その特定文字列が含まれない場合には、元の文字列にマッチさせるようにするにはどうすればよいでしょうか。含まれない場合には元の文字列、にマッチさせたいです。やってみた正規表現:"(.*?)(aaa|bbb).*"これだと"aaa"または"bbb"を含む場合にはその前の文字列にマッチしますが、"aaa"や"bbb"にもマッチしてしまうのと、"aaa"や"bbb"を含まない場合には何にもマッチしません。結果を何例か示してあると回答する人にもイメージが伝わりやすいです。11:28質問は(aaa|bbb).*にマッチする文字列を削除(空文字に置換)するだけでよいように読み取れます。15:05環境はpythonのreモジュールですが、正規表現自体はソースの外出しになります。やろうとしていることは、終了文字パターンの前までの文字を切り出すことですが、その終了文字が含まれるとは限らないため、含まれない場合には文字列全体にマッチさせたいです。(投稿順)2回答re.subで終了文字列パターン以降を空文字列に置換したものが抽出結果です。終了文字列パターンにマッチした文字列だけが削除(空文字列で置換)されますので、マッチしなければ元の文字列が得られます。ejiriさんの回答で十分だと思います。こちらは、コメントに「正規表現自体はソースの外出し」と言うことですので、使う正規表現によって、コードの方をいじったりはできず、正規表現のマッチする範囲自体が切り出したい文字列になっていないといけない、と言う想定での回答になります。c).group(0))実行例AAAAAAAAAcccZZZマッチに使用しているコードによっては、若干書き換える必要があるかもしれませんが、"aaa"や"bbb"にもマッチしてしまう→(metropolisさんのコメントにあるように)肯定的先読み(?=〜)が使える"aaa"や"bbb"を含まない場合には何にもマッチしません→対象の"aaa"、"bbb"に加え、終端を表す$を同じ並びに入れてやると言う形で解決しています。|この質問に回答するには、ログインする必要があります。求めていた回答ではありませんか?python正規表現のタグが付いた他の質問を参照する。なる1カンマで区切られた「2桁の数字」にマッチする正規表現について3PythonでNone判定をしてNoneでなければその変数をif分の中で処理するには0正規表現で句読点にマッチしたいが、括弧内の句読点にはマッチさせたくない0n回目のハイフンとマッチさせたい2正規表現の最短マッチについて教えてください。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。従って情報を開示できることに同意したことになります。選択した項目のみ受け入れる。