Regular Expression(正規表現) Part17

1デフォルトの名無しさん
垢版 |
2023/12/16(土) 08:59:20.50ID:uVHZ7e2j
Regular Expressionスレです。

質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。

前スレ
Regular Expression(正規表現) Part16
https://mevius.5ch.net/test/read.cgi/tech/1635936601/

次スレは>>980宜しく
テンプレ>>2以降
2024/03/24(日) 19:41:23.90ID:aAFJLVlH
正規表現って現実の何かで例えるなら何?
パズル?
言語学的な感じも数学的な感じもしないような
2024/03/24(日) 23:03:04.96ID:IO+c4sKO
けんけんぱ
2024/03/25(月) 00:12:28.47ID:BW1at+9B
ずいずいずっころばし
53デフォルトの名無しさん
垢版 |
2024/03/25(月) 17:12:10.55ID:vkyh3m8T
ますたーまいんど
2024/03/28(木) 12:08:33.08ID:Y8B9QCf2
正規表現が $ と ^ をラインアンカーとして採用した理由 ソフトアンテナ
https://softantenna.com/blog/regex-line-anchors/
2024/03/28(木) 23:34:35.78ID:WoHbaWvj
正規表現を初めて使ったのがken氏でOnigmoもken氏
そして現代で正規表現と言えばPerl

この3つの要素を合わせるとなんと>>51になる
2024/03/30(土) 12:49:02.61ID:oQnMbHXx
すべった
2024/03/31(日) 20:21:11.66ID:R8UIIGRi
認められてえらい
58デフォルトの名無しさん
垢版 |
2024/04/01(月) 17:41:25.33ID:Jdw9gPZP
つまりムトゥ神か
2024/04/04(木) 02:49:29.95ID:Bu2po2+x
AAA _ BBB _ CCC _ DDD

BBB AAA
にする
2024/04/04(木) 03:53:18.24ID:X4Q29337
使用環境メモ帳
☑正規表現を使うにチェック
検索するにAAA _ BBB _ CCC _DDD
置換にBBB AAA
2024/04/04(木) 22:23:37.89ID:sf62q9R2
[A][A][A] _B{3,3} _ (C)(\1)\2 _[\x{44}][\x{44}][\x{44}]
2024/04/23(火) 23:42:47.37ID:f/wKo/xU
チェックマークの絵文字かっこいい
63デフォルトの名無しさん
垢版 |
2024/04/28(日) 08:09:34.58ID:bvIrnysh
カ)ミツカン カカ)ミツカン
の単語の始まりにある「カ)」を取ってきたいのだが、
[カ\カユユ][)\)]
だと両方ヒットする。
\b[カ\カユユ][)\)]
だと両方ヒットしない。
\bて単語の始まりじゃないの?
2024/04/28(日) 08:33:21.76ID:cFVqBor9
使ってるプログラミング言語は?
2024/04/28(日) 08:43:14.02ID:rlAkFFFr
>>63
一般に正規表現の \b 及び \B の文脈における「単語」とは「\w+」のこと
「か」は単語ではないので、当然ながらその直前の位置(境界)に \b はマッチしない
2024/04/28(日) 08:44:57.81ID:w8Q1u9O5
単語の境界の単語とは\wかどうか
先頭が\w、\wと\W(又は\Wと\w)の間、最後が\w
空白も括弧も全角文字も\wではなく、全てが\Wの連続なので境界がない

(?<=^|\s| )[カ\カユユ][)\)]
こんな感じかなあ?
2024/04/28(日) 09:15:58.39ID:w8Q1u9O5
句読点(、。,.,.)があるならそれもか
2024/04/28(日) 09:24:53.38ID:b3SQbRRV
https://regex101.com/r/HbkFb9/1
69デフォルトの名無しさん
垢版 |
2024/04/28(日) 10:39:11.02ID:bvIrnysh
>>66
サンクス。
正規表現チェッカーだとうまく行くが、VBAだとエラーする。
カカ)ミツカンていう会社名なんてないから諦めるわ。
2024/05/01(水) 06:39:29.77ID:QLRpEQs1
=?UTF-8?Q?=F0=9F=91=BBIt's_Halloween_Sale_=E2=80=93_Time_To_Save!?=
=?UTF-8?Q?=F0=9F=91=BBIt's_Halloween_Sale_=E2=80=93_Time_To_Save!?=

quoted-printableを切り出すのは難しいな
2024/05/01(水) 10:32:16.36ID:G90j3Kau
切り出しするのはMIMEパートで
中身はすべてQPだから難しくなさそうだけど罠がある?
72デフォルトの名無しさん
垢版 |
2024/05/25(土) 14:18:39.96ID:5mKzxThb
こんちゃ
flexible renamerで上のフォルダを検索して、そのフォルダ名をファイル名にしたいのですが、上のフォルダの検索方法はどうすればいいんでしょうか。

../
これでいけるとおもったんですが、文字列になるみたいです
2024/05/25(土) 14:34:39.35ID:GTAuICNX
置換えを\fにするんでは
親フォルダなら\Fか
2024/05/25(土) 14:37:23.14ID:NyW0Hsfe
置換については \F が親フォルダ名を示すメタ文字
「サポート▶」クリックで表示されるリストを確認するといい
75デフォルトの名無しさん
垢版 |
2024/05/25(土) 15:09:38.89ID:5mKzxThb
ありがとう(*´ω`*)解決ナリよ
76デフォルトの名無しさん
垢版 |
2024/05/25(土) 16:34:20.14ID:5mKzxThb
ところでwindowsで10の別名フォルダを同名にリネームして、中身を1つに統合みたいなことは出来ないのでしょうか?
2024/05/25(土) 17:54:07.45ID:+J5I1fk8
スレチ
2024/05/25(土) 18:00:34.05ID:o9ml7dor
>>76
バッチでも書きゃいいだろ
79デフォルトの名無しさん
垢版 |
2024/05/25(土) 18:15:50.33ID:5mKzxThb
はい
2024/05/25(土) 20:23:33.14ID:Roch7C/E
windows ntfs union
で調べたらわかるけど困難
Linux上で実現させてそこへアクセスが単純かな
81デフォルトの名無しさん
垢版 |
2024/05/27(月) 00:15:11.27ID:3w+qnBSP
一旦同名フォルダ作って全部ぶっ込んで統合先の親に移動するだけだろ
誰もunionfsごっこやりたいとか言ってないぞ
2024/05/29(水) 18:58:45.90ID:uKjwQH9U
生気表現 ('A`)
性器表現 ((i))  くコ:彡
どれがいい?
2024/05/30(木) 19:54:12.15ID:BiQuU9Dh
何がregularなのかいまだにわからん
2024/05/31(金) 02:22:57.15ID:8gCpYzBa
たまには英語の辞書を開いてあげろ
2024/05/31(金) 21:42:18.07ID:TouRjKKE
レギュラーコーヒーのレギュラーって何って質問しても満足な回答得られないから今度やってみ
2024/06/01(土) 15:29:35.29ID:AnvSsNLo
非正規コーヒー
2024/06/01(土) 17:45:51.25ID:zLTUouUC
レギュラーコーヒーのレギュラーはnormalとかordinaryの意味でのレギュラー
インスタントコーヒーと区別するために作られた日本語

regular expressionのregularは「規定されたルールに従った」という意味でのレギュラー
形式言語理論からの用語
2024/06/01(土) 18:52:55.00ID:4ZWo8ROd
>>87
>>インスタントコーヒーと区別するために作られた日本語

いわゆる「レトロニム」ってやつだね
2024/06/02(日) 06:26:43.62ID:j0fRNfQ2
正規表現のregularはレギュレーション的な意味?

そしてコーヒーそうだったのか
普通の王道の味のコーヒーって意味だと思ってたwww
2024/06/03(月) 02:03:28.38ID:YPamPwdM
英和だけじゃなく英英も調べるようにしたほうがいいよ
2024/06/03(月) 19:56:37.73ID:PWp7k61t
>>87
形式言語理論だと正則表現と訳すことの方が多いらしい
2024/06/05(水) 15:42:09.20ID:kJJy3o9y
セーソク表現か…
2024/06/06(木) 14:37:37.38ID:E3zmVJgl
>>89
コーヒーソーダは違います
94デフォルトの名無しさん
垢版 |
2024/06/18(火) 14:11:57.80ID:pzzAto97
質問させてください

# h1
## h2
こういった構造なのですが、h2のタブ(上の例では半角スペースにしてます)を除いた箇所だけマッチさせたいです
# .*
## .*
1つ目をh1用、2つ目をh2用としてマッチさせたいのですが、これだと1つ目がh2の後半部分にもマッチしてしまいます。
対策はあるでしょうか
2024/06/18(火) 14:59:50.56ID:J2T1cvE/
2つ目を1つ目にして
1つ目を2つ目にする
96デフォルトの名無しさん
垢版 |
2024/06/18(火) 15:10:51.31ID:pzzAto97
すみません
どういうことでしょうか。
2024/06/18(火) 15:21:22.31ID:TPDReXqh
後読みが使える環境なら
(?!#)# .*
2024/06/18(火) 15:22:52.25ID:TPDReXqh
^# .*で問題ないのか
99デフォルトの名無しさん
垢版 |
2024/06/18(火) 17:57:12.95ID:pzzAto97
試したところ、後読みというは使えない環境のようでした
meryというテキストエディタです
100デフォルトの名無しさん
垢版 |
2024/06/18(火) 17:58:50.33ID:pzzAto97
そっちのスレで聞いてみますね
2024/06/18(火) 20:25:18.67ID:kkbo/g2D
FindOnig
2024/07/09(火) 03:18:21.56ID:pEcdZJzG
re2のレポジトリに、ずっとコード書いてきた人を追悼するissueが立ってるけど
いたずらじゃなく本当だとしたら今後どうするんだろ
正規表現エンジンの設計ってわりと専門性高めで後任を見つけるのも簡単ではなさそうだけど
2024/07/10(水) 22:30:27.80ID:gmanX3ar
You! Google 入っちゃいなよ!
2024/07/14(日) 06:46:47.39ID:wEMWtxb4
これ以上仕様ごちゃごちゃ追加しても
使いこなせる人1%もいないから放置でいいよ
2024/07/15(月) 14:02:14.21ID:glISuHIA
お前がこなすんだよ!
2024/07/16(火) 09:13:43.60ID:dYW+o1n8
お前がこなたなんだよ!
2024/07/17(水) 20:43:28.55ID:F5hkyutw
Googleのre2とIntelのhyperscanは他の色んな正規表現エンジンを過去のものにした
2024/07/20(土) 05:52:51.61ID:/niJ3Ici
高速な正規表現エンジンを求める人が遅い正規表現を作って使ってたりする
正規表現エンジン作者はユーザーのアップデートもしたいだろうな
2024/07/22(月) 03:43:13.27ID:qSKgOXFg
そういうのはエディタの仕事だ
ビジュアライザー付き正規表現ダイアログボックスで
ミスなく正規表現を入力したらAIが改善を指摘すればよし
2024/07/22(月) 15:45:56.06ID:L5BeUc31
正規表現を作るのが下手な人は書き始める前のアルゴリズム作成の段階で
おかしくなってる場合も多い それ含め全部AIがやってくれるのが理想だ
2024/07/22(月) 15:48:23.43ID:65P6Lbbe
場合抜けしてる勘違いぎみの式だけを見たって
本来の意図が何だったのかAIじゃなくて人間でもわからん場合もあるよね
2024/07/22(月) 17:18:51.25ID:JYnS/4wE
正規表現だけみせても最適化しかできないだろうから
周辺のコードも与えて関数レベルで出力してもらうのが適当かもね
2024/07/23(火) 19:28:10.50ID:Dt1Z//LV
AIに抽出してもらえば正規表現いらないじゃん
2024/07/29(月) 23:15:46.44ID:rj9tTr/V
●Regular Expressionの使用環境
JaneXeno

●検索か置換か?
検索

●説明
.com .net .jp 以外のドメインを含むURLをNGにしたい

●対象データ
http://example.com
http://example.net
http://example.jp
http://example.cn
http://example.xyz
https://example.com
https://example.net
https://example.jp
https://example.cn
https://example.xyz

●希望する結果
http://example.cn
http://example.xyz
https://example.cn
https://example.xyz
2024/07/30(火) 15:30:31.34ID:QttCMg3R
>>114
https?+://(?:[!-~&&[^./"()<>]]++\.)++(?!com|net|jp)(?>[a-z]{2,10})(?::(?>[0-9]{2,5}))?+(?>[/?#]|(?![!-~&&[^"()<>]]))
116114
垢版 |
2024/07/30(火) 16:01:05.48ID:DGOcYJSo
>>115
神様、マジありがとうございました
2024/08/04(日) 11:21:08.46ID:H8uHYzPU
(?>[/?#]|(?![!-~&&[^"()<>]]))

これは先読み否定1つにまとめられる

(?!com|net|jp)

これはcomeやjpgも弾いてしまう

どちらも実用上は問題ない
前者は頭の体操にはちょうどいい難易度
118114
垢版 |
2024/08/04(日) 11:54:05.49ID:katRHk63
>>117
ちょっと何言ってるか分からない
119デフォルトの名無しさん
垢版 |
2024/08/04(日) 12:37:10.85ID:5uZlH5sT
アーガスで一番右に行ってから着陸しろって意味じゃね?
2024/08/20(火) 21:50:27.06ID:KT2/xy/p
●Regular Expressionの使用環境
JaneXeno

●検索か置換か?
検索

●説明
ageとsageと空欄以外の文字列が含まれる場合を検出したいです

よろしくおねがいします
2024/08/21(水) 06:42:43.17ID:7ZTrDQRo
メール欄を検索対象にしたレス抽出ってこと?
\A(?!s?age$)
2024/08/21(水) 08:39:25.39ID:mGvismew
>>121
ありがとうございます
メール欄がageとsageと空欄を除き、それ以外をNGにしたいです
123120
垢版 |
2024/08/22(木) 07:25:48.82ID:mXgFFjHI
>>121
その正規表現だと全てNGになってしまいました・・・
2024/08/22(木) 07:36:11.31ID:Lj1UZYEn
>>123
ぜんぜんユーザじゃないけどbregonig.dll導入で解決しそう
2024/08/22(木) 09:04:27.38ID:NijHRpmx
^(?!age$|sage$|$).+
2024/08/22(木) 09:05:35.42ID:knLF+ZG1
>>123
(^s?age$|^$)は?
サンプルがないからよくわからんけど構造によっては空欄がムズイ気がする
2024/08/22(木) 09:53:46.14ID:od4YjwYP
明らかにソフトのスレで聞いた方が早いだろう
JaneXeno質問スレ9
http://egg.5ch.net/test/read.cgi/software/1722559511/
2024/08/22(木) 10:35:07.43ID:B9IGKhdB
^(?!sage|*age|\s|\S).*$  前方一致否定
^(?!.*sage|*age|\s|\S).*$  部分一致否定
^(?!.*sage$|*age|\s|\S) 後方一致否定


動くかはしらん
2024/08/22(木) 10:45:02.10ID:1r7uDbgD
^(?!age).*$
^(?!sage).*$
^(?!\s).*$

を3行前方一致の否定で分けてかいてみたら?全角空白はわからん
2024/08/22(木) 11:53:01.69ID:Z0c4Ov9t
NG Addr 正規(含まない)
^(age|sage|)$
2024/08/22(木) 12:27:50.31ID:1pp2sZBh
>>124 をせんとエンジンがよわよわなだけで
正規表現は >>121 であってるし低脳ばっかやな
2024/08/22(木) 16:58:52.48ID:WSGH1Pr6
datで下の3つ以外でmatchするってことだろ(書き込みエラーで<>に置き換えてる)
名前(変動)<>sage<>2024/08/22(ry
名前(変動)<>age<>2024/08/22(ry
名前(変動)<><>2024/08/22(ry
専ブラによってエンジンが違うから環境いれる気にはならんが
2024/08/27(火) 22:04:04.81ID:K31idf52
age sage の前後に半角空白が1つまたは2つ入ることを想定すべき
Janeの全盛期ならこんなのすぐに解決してたな
2024/08/28(水) 09:58:05.19ID:M0ceOk+r
想定すべき、って言えるのなんなんだろう?
そこまで想定してなくても実用上十分、てことは多々あるだろう
2024/08/28(水) 11:44:10.78ID:29oRaxIo
スレのdatは板ごとに微妙な違いがある
半角空白が前後に入るスレは珍しくなかった
今の人が知らないのは仕方ない
2024/08/28(水) 12:04:38.47ID:TruuGgPL
>>135
それこそ想定しないても通常大丈夫なものじゃん
俺のLog漁っても20年以上前からあるけど、まだ日付けの年号が2桁でIDも付いてないものでも
前後に空白は付いてなかったくらいだ
俺はレス本体と一時期のスレタイトルぐらいしか記憶にないよ
2024/08/28(水) 12:06:40.94ID:TruuGgPL
スレタイトルは空白じゃなくてタブだったので訂正しとく
2024/08/28(水) 15:51:55.48ID:29oRaxIo
半角空白が入る板が存在しないなら対応する必要は無いよ

ただ、自分なら対応したものを作る
そういう板が1つでもあったら作り直しになるから

質問者さんが使っている板が半角空白が入る板ではないという確証が無い以上
対応しておくのが無難でしょう、したらばやJane板のような外部板のことまで考えるとね
2024/08/28(水) 15:59:03.58ID:TruuGgPL
実用上十分ってことを知らんのか
さらに、他BBSでも空白が入るところは大手ではないよ
(したらば、おーぷん、JANE総合も入らない)
2024/08/28(水) 19:41:57.47ID:29oRaxIo
大手じゃないところで半角空白が入る板があったら誤作動する正規表現を作るよりも
対応したものを作るほうがベターだと思うが

頑なに非対応にする理由もあるまい
2024/08/29(木) 00:19:30.02ID:3od28NMQ
メール欄がわざと「 age 」の奴をNGできない
2024/08/29(木) 19:22:18.21ID:s7DstX6Q
>>133 は対応するべき、て言い切ってる
自分ならこうするとか、この方がベターとかとは一線を画す表現
やらなきゃいけないと言っている

でもさ、不特定多数に配るアプリの話じゃないんだよ?
2024/08/29(木) 19:26:50.79ID:s7DstX6Q
RFC準拠のメールアドレスの正規表現はクソ長いが個人で使うのにそこまで要らん
の話思い出した
2024/08/29(木) 19:38:28.39ID:zKbcOD8k
自分が使うものなら好きにすれば良いが質問の回答として正規表現を作るなら
柔軟性を確保するにこしたことはない
でないと質問者は自分じゃ直せないからちょっとした誤作動でまた質問しに来てしまう
そういう意味で「すべき」と書いたよ、何か問題ある?

> メール欄がわざと「 age 」の奴をNGできない

わざとでない「 sage」がNGになってしまうのはいいの?
2024/08/29(木) 21:34:59.96ID:s4c4C/Bz
試しに、名前とメール欄に前後半角空白付きで書き込んでみた
結果、datからは前後の半角空白は削除されて付いてない

そもそも、可能性があるってだけで対応しないといけないってのはおかしいだろ
たった一つだけでいいのでそういう例がある(あった)というものを出すべき
2024/08/29(木) 21:37:57.27ID:s4c4C/Bz
書いたところは
https://egg.5ch.net/test/read.cgi/software/1724332370/204-206
それぞれJaneStyleで末尾整形あり、整形なし、汎用ブラウザ(firefox)で書いた
2024/08/29(木) 23:45:06.51ID:zKbcOD8k
それは掲示板だって半角空白に対応させてるってことでしょ
正規表現で半角空白に対応しておくべきと書くことはそんなにおかしなことなの

質問者はまだ未解決のようだけどその原因が半角空白でないと言い切れる?
最初から対応しておけばこの可能性を考えずに済むよね?
なんで想定すべきと書いたらいけないの?

ここにいる人全員が納得出来る説明を求む
2024/08/29(木) 23:55:45.32ID:s4c4C/Bz
回答は的確に簡潔に質問に答えることがいちばん
余計な蛇足を加えて悦にいるのは自分が使う分にはいいけど人に指図するものじゃない
ソースコードやスクリプトでも質問もしてないのにあれこれ余分な配慮でコードを複雑にして
いいことをやったと自己満足してる奴にはならないようにしよう
2024/08/29(木) 23:59:39.42ID:s4c4C/Bz
で、半角空白が含まれるものはあるんかい
この部分は一つだけ実例を示すだけでいいんだよ
存在しえない可能性とやらを配慮するのはまったくの無駄
それは半角空白の変わりにタブコードが含まれる場合に対処しろって言うのと変わらん
2024/08/30(金) 00:10:46.53ID:z5xrh4P7
>>135で板によっては存在するのは珍しくないとまでいってるんだから
そのリンクを示すだけでいいんだぞ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況