Regular Expression(正規表現) Part17

2025/11/20(木) 01:53:23.80ID:MRBYucy1
●Regular Expressionの使用環境
 Java1.5
●検索か置換か?
 検索
●説明
 http://https://があるもしくはない場合のドメインとサブドメインを検索したい
 自分で考えた以下の正規表現だと、.から始まる不正なURLまで一致してしまいダメでした
^(https?://)?(.*\.)?doubleclick.net
●対象データ
#一致させたいものは以下
http://doubleclick.net/pagead/
https://doubleclick.net/pagead/
http://g.doubleclick.net/pagead/
https://g.doubleclick.net/pagead/
http://googleads.g.doubleclick.net/pagead/
https://googleads.g.doubleclick.net/pagead/
doubleclick.net/pagead/
g.doubleclick.net/pagead/
googleads.g.doubleclick.net/pagead/

#一致させたくないものは以下
http://.doubleclick.net/pagead/
https://.doubleclick.net/pagead/
http://.g.doubleclick.net/pagead/
https://.g.doubleclick.net/pagead/
http://.a.g.doubleclick.net/pagead/
https://.a.g.doubleclick.net/pagead/
.doubleclick.net/pagead/
.g.doubleclick.net/pagead/
0doubleclick.net/pagead/
http://0doubleclick.net/pagead/
https://0doubleclick.net/pagead/
2025/11/20(木) 09:40:15.39ID:Mz3QCXK6
その処理系で文字クラスが使えるなら (.*\.)? を ([^.0].*\.)? とすればイケるハズ
295293
垢版 |
2025/11/20(木) 15:17:38.43ID:MRBYucy1
>>294
レスありがとうございます
以下の2行は一致しなくなりましたが、
.doubleclick.net/pagead/
.g.doubleclick.net/pagead/

以下の6行は一致してしまいました
http://.doubleclick.net/pagead/
https://.doubleclick.net/pagead/
http://.g.doubleclick.net/pagead/
https://.g.doubleclick.net/pagead/
http://.a.g.doubleclick.net/pagead/
https://.a.g.doubleclick.net/pagead/
2025/11/20(木) 16:30:51.92ID:0pUMlwmF
"doubleclick.net"は決め打ちでいいのかな

Pattern p = Pattern.compile("^(?:https?://)?((?:[^./?#]+\\.)*doubleclick\\.net)(?=[:/]|$)");

マッチした後の処理は分からんけど動作例
https://ideone.com/3WFyH6
297293
垢版 |
2025/11/20(木) 21:15:50.67ID:MRBYucy1
>>296
レスありがとうございます
せっかく教えていただいたのにすみません、JavaではなくてJavaScriptでしたので動作しませんでした

チェッカー
https://www-creators.com/tool/regex-checker
2025/11/20(木) 21:32:25.61ID:0pUMlwmF
今時分にJava1.5でおかしいと思ったけどスルーしてしまった
文字列でエスケープしてる\\を\に直せば使えるはず
ついでに?と#を先読みに追加した(多分いらない)

^(?:https?://)?((?:[^./?#]+\.)*doubleclick\.net)(?=[:/?#]|$)
299293
垢版 |
2025/11/20(木) 21:52:35.87ID:MRBYucy1
>>298
度々ありがとうございます
完璧に動作しました!
助かりました

未だに先読みと後読みが使いこなせず・・・詰んでました
2025/11/20(木) 23:34:16.70ID:mbRrNt6G
>>292
シンプソン構成法じゃなくてトンプソン構成法でした。すまそん
尊敬する Ken Thompson の名前を間違えるとはヤバ過ぎ
レスを投稿する

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

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