[過去ログ]
Regular Expression(正規表現) Part15 (1002レス)
Regular Expression(正規表現) Part15 http://mevius.5ch.net/test/read.cgi/tech/1568640311/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
976: デフォルトの名無しさん [sage] 2021/10/30(土) 19:56:09.69 ID:y9dUwbDd Pythonの正規表現を変数などに入れておき、他の正規表現の一部として再利用する方法ってあるのでしょうか。 第一の正規表現を hoge =[abcd] としてhogeに格納しておいて、 別の正規表現で (【hoge】|[efg]) のように、【】の部分で変数を引用するイメージです。 http://mevius.5ch.net/test/read.cgi/tech/1568640311/976
978: デフォルトの名無しさん [sage] 2021/10/30(土) 20:13:14.90 ID:y9dUwbDd >>966 試しに考えてみました。 問題あればご指摘ください。 abc defのときに、間の空白がどの程度許容されるのかがわかりませんが、とりあえず1文字の空白があってもなくても良い\s?、ということで考えます。 場合分けすると、 abcが冒頭に来るもの(defはあってもなくても可) defが冒頭にくるもの(abcはあってもなくても可) どちらもなく、空白はあってもなくても可 の3種類にわけられますから、 ^abc\s?(def)? ^def\s?(abc)? ^\s? であり、このどれかがあてはまればいいので、 (^abc\s?(def)?| ^def\s?(abc)?|^\s?) となります。 ^は3つに共通しているので、カッコの外に括り出してもいいですね。すると ^ (abc\s?(def)?| def\s?(abc)?|\s?) となります。 http://mevius.5ch.net/test/read.cgi/tech/1568640311/978
979: デフォルトの名無しさん [sage] 2021/10/30(土) 20:19:09.28 ID:y9dUwbDd 3つを合成する時に間に変なスペースが入ってしまっていて、マッチを妨げていました。 ^(abc\s?(def)?|def\s?(abc)?|\s?) ですね。 http://mevius.5ch.net/test/read.cgi/tech/1568640311/979
980: デフォルトの名無しさん [sage] 2021/10/30(土) 20:27:08.27 ID:y9dUwbDd >>977 それは盲点でした! 正規表現オブジェクトの再利用ということばかり考えていましたが、複数の正規表現に同じ文字列を代入すれば同一の効果が得られますね。 ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1568640311/980
982: デフォルトの名無しさん [sage] 2021/10/30(土) 23:11:57.73 ID:y9dUwbDd >>981 そうであれば ^(abc\s+(def)?|def\s+(abc)?|\s?)\s?$ で良いと思います。 間の空白を1以上とし、 忘れていた行末$を補い、 パターンの後に空白があっても大丈夫なようにしました。 http://mevius.5ch.net/test/read.cgi/tech/1568640311/982
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s