Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part16
https://mevius.5ch.net/test/read.cgi/tech/1635936601/
次スレは>>980宜しく
テンプレ>>2以降
探検
Regular Expression(正規表現) Part17
1デフォルトの名無しさん
2023/12/16(土) 08:59:20.50ID:uVHZ7e2j331317
2025/12/12(金) 09:53:53.88ID:qdqoL0/s 訂正してみました
(1-5(08(1-9)|(1-9)(1-9)(1-9))|6(0-4(0-9)(0-9)(0-9)|5(0-4(0-9)(0-9)|5(0-2(0-9)|(3)0-5))))
(1-5(08(1-9)|(1-9)(1-9)(1-9))|6(0-4(0-9)(0-9)(0-9)|5(0-4(0-9)(0-9)|5(0-2(0-9)|(3)0-5))))
332デフォルトの名無しさん
2025/12/12(金) 10:50:58.26ID:LKIn+XBY (?<!\d)(?!15080(?!\d))\d+
333317
2025/12/12(金) 12:06:38.03ID:qdqoL0/s >>332
それだと9999なども一致していまいました・・・
一致させたいのは以下の通り15080を除く10000〜65535の数字です
●対象データ
10000〜65535
●結果
15080だけ除外したい
それだと9999なども一致していまいました・・・
一致させたいのは以下の通り15080を除く10000〜65535の数字です
●対象データ
10000〜65535
●結果
15080だけ除外したい
334デフォルトの名無しさん
2025/12/12(金) 12:13:35.22ID:rpg4U98A エディタで実行するってことは手作業が前提なのかな?
それなら検索に先立って 15080 を 💩 に置換しておく方が手っ取り早い
それなら検索に先立って 15080 を 💩 に置換しておく方が手っ取り早い
335デフォルトの名無しさん
2025/12/12(金) 12:54:36.94ID:5G5yyPjc (?!15080)(5桁特定範囲マッチ文)
あとは任せた
あとは任せた
336デフォルトの名無しさん
2025/12/12(金) 14:08:50.61ID:GFwk6EHV ログ抽出なら普通にgrepすればいいじゃん
除外したければgrep結果に-vで再grep
除外したければgrep結果に-vで再grep
338デフォルトの名無しさん
2025/12/12(金) 19:47:36.13ID:9WR4PduZ (?!15080)([1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])
6桁以上を除外するなら
(?<!\d)((?!15080)([1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))(?!\d)
6桁以上を除外するなら
(?<!\d)((?!15080)([1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))(?!\d)
339317
2025/12/12(金) 19:49:17.82ID:qdqoL0/s >>335
ありがとうございます
これで合ってますか?
(?!15080)(([1-5]([0-9])([0-9])([0-9])([0-9]))|(6([0-4]([0-9])([0-9])([0-9])|5([0-4]([0-9])([0-9])|5([0-2]([0-9])|(3)[0-5])))))
ありがとうございます
これで合ってますか?
(?!15080)(([1-5]([0-9])([0-9])([0-9])([0-9]))|(6([0-4]([0-9])([0-9])([0-9])|5([0-4]([0-9])([0-9])|5([0-2]([0-9])|(3)[0-5])))))
340317
2025/12/12(金) 19:50:24.52ID:qdqoL0/s >>338
超ありがとうございます!
教えていただいたこちら使わせていただきます
助かりました
(?!15080)([1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])
超ありがとうございます!
教えていただいたこちら使わせていただきます
助かりました
(?!15080)([1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])
341317
2025/12/12(金) 21:51:03.49ID:qdqoL0/s342デフォルトの名無しさん
2025/12/12(金) 22:25:23.79ID:lKBtIMua すっきり快便
343デフォルトの名無しさん
2025/12/13(土) 01:35:26.40ID:klNuhF9X JScriptで検索自体を素直に書けるのに正規表現のみにこだわる必要がない
外部コマンドでタグジャンプ用の出力するのもあり
外部コマンドでタグジャンプ用の出力するのもあり
344デフォルトの名無しさん
2025/12/14(日) 10:09:57.70ID:+W6SCkp6 先読みアサーションって、(マッチさせたい文字列に対応する)本体パターンの後ろに書くものだと思っていたけど、340みたいに前に書くのも一般的なのかな?
(?!15080)([0-9]{5}) が15080にマッチしないのが先読みアサーションの意味論に照らして正しいのか個人的にちょっと自信が持てない(というか疑わしく思う)んだが。
戻り読みアサーションの(?<!15080)([0-9]{5})は15080にマッチするし、こちらの方が意味論どおりの動作のような気がするんだけど。
(?!15080)([0-9]{5}) が15080にマッチしないのが先読みアサーションの意味論に照らして正しいのか個人的にちょっと自信が持てない(というか疑わしく思う)んだが。
戻り読みアサーションの(?<!15080)([0-9]{5})は15080にマッチするし、こちらの方が意味論どおりの動作のような気がするんだけど。
345デフォルトの名無しさん
2025/12/14(日) 10:25:19.80ID:tGd21ggn 先読みは次に15080が出てこない条件下で後続の5桁の数字にマッチさせる形だから大丈夫そう
戻り読みだと手前に15080が出てこない条件下で後続の5桁の数字にマッチさせるから
1508015080でない限り後続の15080にマッチする
戻り読みだと手前に15080が出てこない条件下で後続の5桁の数字にマッチさせるから
1508015080でない限り後続の15080にマッチする
346デフォルトの名無しさん
2025/12/14(日) 10:32:54.84ID:4RDsvJB6 本体部分のパターンが [0-9]{5} なんだから、先読み・戻り読みのアサーション条件をクリアする限り、15080にもマッチするのが意味論どおりの動作ではないかということなんだが。
347デフォルトの名無しさん
2025/12/14(日) 11:08:03.17ID:Pr7gBHpv ここでグラフィカルに確認できる
https://www.debuggex.com/
https://www.debuggex.com/
348デフォルトの名無しさん
2025/12/14(日) 11:12:12.21ID:C4yAKXLX 先読みは位置を動かさない
つまり、この場合「本体」部分にその文字列が無いのが条件となる
つまり、この場合「本体」部分にその文字列が無いのが条件となる
349デフォルトの名無しさん
2025/12/14(日) 11:14:59.12ID:Pr7gBHpv (?!15080)([0-9]{5})
1508015080は50801にマッチ
15079は15079にマッチ
(?<!15080)([0-9]{5})
1508015080は15080にマッチ ←ここ
15079は15079にマッチ
1508015080は50801にマッチ
15079は15079にマッチ
(?<!15080)([0-9]{5})
1508015080は15080にマッチ ←ここ
15079は15079にマッチ
350デフォルトの名無しさん
2025/12/14(日) 11:24:53.49ID:C4yAKXLX よくある使い方
((?!abc).)+
abcでない文字列
((?!abc).)+
abcでない文字列
351デフォルトの名無しさん
2025/12/14(日) 11:28:30.93ID:C4yAKXLX 1文字の場合は [^a]+
これの複数文字パターンってこと
これの複数文字パターンってこと
352デフォルトの名無しさん
2025/12/14(日) 11:47:42.73ID:4RDsvJB6 うーん、ちょっとアサーションについて誤解していたところがあったかも。考え直してみますわ。
353デフォルトの名無しさん
2025/12/14(日) 12:38:24.68ID:C4yAKXLX 順序を逆にすると本体部分で位置が進むので
([a-z](?!abc))+
abcd → abcd ;先頭はabcだがaの後ろにはabcがないのでaにもマッチする
xabcd → abcd
[a-z]+(?!abc)なら
xabcd → xabcd ; [a-z]+でxabcdがマッチしその後ろにはabcが無いので
[a-z]+(?<!bcd)なら
abcd → abc ; abcdと進んでいくとbcdにマッチするので逆行してabcでストップする
([a-z](?!abc))+
abcd → abcd ;先頭はabcだがaの後ろにはabcがないのでaにもマッチする
xabcd → abcd
[a-z]+(?!abc)なら
xabcd → xabcd ; [a-z]+でxabcdがマッチしその後ろにはabcが無いので
[a-z]+(?<!bcd)なら
abcd → abc ; abcdと進んでいくとbcdにマッチするので逆行してabcでストップする
354デフォルトの名無しさん
2025/12/14(日) 20:13:40.52ID:pwvrkpuI この正規表現で前後の半角空白を除く
descriptionだけを一致させる正規表現を教えて欲しいです
環境はサクラエディタです
/ ?description /
descriptionだけを一致させる正規表現を教えて欲しいです
環境はサクラエディタです
/ ?description /
355デフォルトの名無しさん
2025/12/14(日) 21:35:52.99ID:IHataGt8 /description(?= )/
356デフォルトの名無しさん
2025/12/14(日) 21:55:21.25ID:pwvrkpuI >>355
ありがとうございました!
ありがとうございました!
357デフォルトの名無しさん
2025/12/14(日) 23:41:29.96ID:IHataGt8358デフォルトの名無しさん
2025/12/15(月) 15:01:06.10ID:3kfMtGyS 複雑な正規表現をawkなどに書き換える、
逆に正規表現に戻す
そんなツールがあればいいのに
逆に正規表現に戻す
そんなツールがあればいいのに
359デフォルトの名無しさん
2025/12/15(月) 15:36:51.41ID:u2LUgxm/ AIωにやらせてみたら
レスを投稿する
ニュース
- 「こども2万円給付」は“ずるい”?「子持ちだけ優遇されてる」「来年から独身税もあるのに」…子育て世帯への支援は“不公平”なのか★3 [♪♪♪★]
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★6 [nita★]
- 高市首相「従来の立場超えたと受け止められ反省」 存立危機発言巡り ★3 [蚤の市★]
- 男女2人死亡の赤坂・個室サウナ火災、非常ボタン押された形跡…従業員は煙感知の報知機で気づく [蚤の市★]
- BreakingDown選手がくも膜下出血、瓜田純士、平手打ちを行った江口響は「もう格闘技も辞めます。責任取りたいです』とまで言ってきてる」 [muffin★]
- 資さんうどんが「PayPay」の取り扱いを停止 他のキャッシュレス決済は引き続き利用可能 [少考さん★]
- 渡邊渚「写真集はエロ売りではなく、もっと違うメッセージがある」 ヤフコメ民「私は障害者で被イジメ経験者ですが、理解できません」 [455031798]
- 【高市速報】ヤフコメアンケート「上野動物園にパンダは必要?」パンダはいらないが脅威の90%😳★2 [931948549]
- 【画像】パンダみたいなアスカが発見されるWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 🦥🦧🐾おまっとさんです🐾🦧🦥🦥🏡
- 岩盤を破壊するときに使ったらかっこいい技
- サウナ火災焼死事件、死亡した夫婦は非常ボタンを押すも扉は開かず蒸し焼きに [963243619]
