Regular Expression(正規表現) Part17

337317
垢版 |
2025/12/12(金) 19:24:53.03ID:qdqoL0/s
>>335
肝心な部分たのまい!
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)
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])))))
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])
341317
垢版 |
2025/12/12(金) 21:51:03.49ID:qdqoL0/s
>>334
スクリプト作るのがめんどくさくてサクラエディタのキーマクロで置換してたんですけど
つい先ほどWSH(JScript)で置換することにしました
💩速くなりました
2025/12/12(金) 22:25:23.79ID:lKBtIMua
すっきり快便
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にマッチするし、こちらの方が意味論どおりの動作のような気がするんだけど。
2025/12/14(日) 10:25:19.80ID:tGd21ggn
先読みは次に15080が出てこない条件下で後続の5桁の数字にマッチさせる形だから大丈夫そう

戻り読みだと手前に15080が出てこない条件下で後続の5桁の数字にマッチさせるから
1508015080でない限り後続の15080にマッチする
346デフォルトの名無しさん
垢版 |
2025/12/14(日) 10:32:54.84ID:4RDsvJB6
本体部分のパターンが [0-9]{5} なんだから、先読み・戻り読みのアサーション条件をクリアする限り、15080にもマッチするのが意味論どおりの動作ではないかということなんだが。
2025/12/14(日) 11:08:03.17ID:Pr7gBHpv
ここでグラフィカルに確認できる
https://www.debuggex.com/
2025/12/14(日) 11:12:12.21ID:C4yAKXLX
先読みは位置を動かさない
つまり、この場合「本体」部分にその文字列が無いのが条件となる
2025/12/14(日) 11:14:59.12ID:Pr7gBHpv
(?!15080)([0-9]{5})
1508015080は50801にマッチ
15079は15079にマッチ

(?<!15080)([0-9]{5})
1508015080は15080にマッチ ←ここ
15079は15079にマッチ
2025/12/14(日) 11:24:53.49ID:C4yAKXLX
よくある使い方
((?!abc).)+
abcでない文字列
2025/12/14(日) 11:28:30.93ID:C4yAKXLX
1文字の場合は [^a]+
これの複数文字パターンってこと
352デフォルトの名無しさん
垢版 |
2025/12/14(日) 11:47:42.73ID:4RDsvJB6
うーん、ちょっとアサーションについて誤解していたところがあったかも。考え直してみますわ。
レスを投稿する

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

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