Regular Expression(正規表現) Part17
294デフォルトの名無しさん
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/
レスありがとうございます
以下の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/
296デフォルトの名無しさん
2025/11/20(木) 16:30:51.92ID:0pUMlwmF "doubleclick.net"は決め打ちでいいのかな
Pattern p = Pattern.compile("^(?:https?://)?((?:[^./?#]+\\.)*doubleclick\\.net)(?=[:/]|$)");
マッチした後の処理は分からんけど動作例
https://ideone.com/3WFyH6
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
レスありがとうございます
せっかく教えていただいたのにすみません、JavaではなくてJavaScriptでしたので動作しませんでした
チェッカー
https://www-creators.com/tool/regex-checker
298デフォルトの名無しさん
2025/11/20(木) 21:32:25.61ID:0pUMlwmF 今時分にJava1.5でおかしいと思ったけどスルーしてしまった
文字列でエスケープしてる\\を\に直せば使えるはず
ついでに?と#を先読みに追加した(多分いらない)
^(?:https?://)?((?:[^./?#]+\.)*doubleclick\.net)(?=[:/?#]|$)
文字列でエスケープしてる\\を\に直せば使えるはず
ついでに?と#を先読みに追加した(多分いらない)
^(?:https?://)?((?:[^./?#]+\.)*doubleclick\.net)(?=[:/?#]|$)
299293
2025/11/20(木) 21:52:35.87ID:MRBYucy1300デフォルトの名無しさん
2025/11/20(木) 23:34:16.70ID:mbRrNt6G301デフォルトの名無しさん
2025/11/22(土) 12:38:05.41ID:Vr8VfdEk 黄色くなりそう
302デフォルトの名無しさん
2025/12/03(水) 23:55:16.13ID:qGMLhXHy よろしくお願いします
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
1行に複数ある□=■■■;の■■■;(セミコロンも含む)部分を抽出したいです
※フォントに色付けしたいため
●対象データの1行に対して他の色付けの正規表現も使っています
1.txt部分の着色用正規表現 /^(a|mx|cname|srv|txt|@|www)/k
2._dmarc.example.com部分の着色用正規表現 /(?<=^a |mx |cname |srv |txt )(\S)+\s/k
●対象データ
txt _dmarc.example.com v=DMARC1; p=reject; rua=mailto:dmarc_rua@example.com; ruf=mailto:dmarc_ruf@example.com; fo=1; adkim=s; aspf=s;
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
1行に複数ある□=■■■;の■■■;(セミコロンも含む)部分を抽出したいです
※フォントに色付けしたいため
●対象データの1行に対して他の色付けの正規表現も使っています
1.txt部分の着色用正規表現 /^(a|mx|cname|srv|txt|@|www)/k
2._dmarc.example.com部分の着色用正規表現 /(?<=^a |mx |cname |srv |txt )(\S)+\s/k
●対象データ
txt _dmarc.example.com v=DMARC1; p=reject; rua=mailto:dmarc_rua@example.com; ruf=mailto:dmarc_ruf@example.com; fo=1; adkim=s; aspf=s;
303302
2025/12/04(木) 00:04:57.89ID:VPJDZJTH /(?<==)(\S)+/kで出来ました
ありがとうございました
ありがとうございました
304デフォルトの名無しさん
2025/12/04(木) 06:08:13.61ID:eAywzaH6 どういたしまして!
305デフォルトの名無しさん
2025/12/06(土) 22:50:10.26ID:2DkcA45J セミコロンはどこいった
306デフォルトの名無しさん
2025/12/07(日) 02:42:31.53ID:R0icGBd3 DMARCレコードの末尾はセミコロンなくてもいいからじゃね?
それより修飾子kがなにかきになる
それより修飾子kがなにかきになる
307デフォルトの名無しさん
2025/12/07(日) 07:46:42.62ID:UCYK391B プログラムでなくて正規表現メモパッド環境での質問でも良いですか
任意の文字をHTMLエンコード(16進数数値文字参照)するコマンドってありますか
文章:正規表現
検索:規
置換:⸨REGEXコマンド⸩
結果:正&#x898F;表現
的な
任意の文字をHTMLエンコード(16進数数値文字参照)するコマンドってありますか
文章:正規表現
検索:規
置換:⸨REGEXコマンド⸩
結果:正&#x898F;表現
的な
308デフォルトの名無しさん
2025/12/07(日) 11:24:43.85ID:DIZ3oEXF イヤん置換
309デフォルトの名無しさん
2025/12/07(日) 14:08:32.54ID:9FE0dLzx >>306
>DMARCレコードの末尾はセミコロンなくてもいいからじゃね?
なるほどね
>それより修飾子kがなにかきになる
文字のハイライトをしたいときに使うオプションのようだけど
/kが必要になる理由は分からないな
>DMARCレコードの末尾はセミコロンなくてもいいからじゃね?
なるほどね
>それより修飾子kがなにかきになる
文字のハイライトをしたいときに使うオプションのようだけど
/kが必要になる理由は分からないな
310デフォルトの名無しさん
2025/12/07(日) 16:01:19.36ID:W5rWTuKC 使ってるAPI関係の話みたいだよ
-------
Bregexp.dll for SAKURA 互換 API
BMatch(), BMatchEx(), BSplit()
/pattern1/options
m/pattern1/options
BSubst(), BSubstEx()
s/pattern1/pattern2/options
BTrans()
tr/pattern3/pattern4/options
y/pattern3/pattern4/options (Ver.3 以降)
options
k - 文字を日本語(Shift_JIS)として扱うが、Unicode API 利用時は無視される(Bregexp.dll 独自拡張)
-------
hintヒント
正規表現を検索、置換、Grepで利用する場合、「/」をエスケープしたり、「/」で囲ったりする必要はありません。
正規表現キーワードで使う場合は、/text\/css/k のように「/」をエスケープするか m#text/css#k のように書く必要があります。
hint追加情報
検索、置換、Grepでは、正規表現ライブラリに渡す文字列を以下のようにしています。[DELIMITER]は、0xffのバイナリ表記とします。
Unicode版では U+FFFF です。
検索時のオプションは「m[DELIMITER]Pattern[DELIMITER]km」です。
置換時のオプションは「s[DELIMITER]PatternBefore[DELIMITER]PatternAfter[DELIMITER]km」です。
デリミタ相当の文字を検索・置換するにはエスケープが必要です。
また大文字小文字を区別しない場合は最後に「i」が付加されます。
すべて置換で「すべて置換は置換の繰返し」がOFFの場合は「g」が付加されます。
(mオプションが付いていますが、改行をまたいだ検索はできません。)
-------
Bregexp.dll for SAKURA 互換 API
BMatch(), BMatchEx(), BSplit()
/pattern1/options
m/pattern1/options
BSubst(), BSubstEx()
s/pattern1/pattern2/options
BTrans()
tr/pattern3/pattern4/options
y/pattern3/pattern4/options (Ver.3 以降)
options
k - 文字を日本語(Shift_JIS)として扱うが、Unicode API 利用時は無視される(Bregexp.dll 独自拡張)
-------
hintヒント
正規表現を検索、置換、Grepで利用する場合、「/」をエスケープしたり、「/」で囲ったりする必要はありません。
正規表現キーワードで使う場合は、/text\/css/k のように「/」をエスケープするか m#text/css#k のように書く必要があります。
hint追加情報
検索、置換、Grepでは、正規表現ライブラリに渡す文字列を以下のようにしています。[DELIMITER]は、0xffのバイナリ表記とします。
Unicode版では U+FFFF です。
検索時のオプションは「m[DELIMITER]Pattern[DELIMITER]km」です。
置換時のオプションは「s[DELIMITER]PatternBefore[DELIMITER]PatternAfter[DELIMITER]km」です。
デリミタ相当の文字を検索・置換するにはエスケープが必要です。
また大文字小文字を区別しない場合は最後に「i」が付加されます。
すべて置換で「すべて置換は置換の繰返し」がOFFの場合は「g」が付加されます。
(mオプションが付いていますが、改行をまたいだ検索はできません。)
311デフォルトの名無しさん
2025/12/07(日) 16:06:20.28ID:W5rWTuKC サクラエディタにはUnicode版もあるらしいが、そこでも //k が使われるのかは不明
まあこれをそのままユーザーに指定させるってのもどうかなってのは思う
まあこれをそのままユーザーに指定させるってのもどうかなってのは思う
312デフォルトの名無しさん
2025/12/07(日) 19:50:15.24ID:FNtb5kKI bregoing
313デフォルトの名無しさん
2025/12/07(日) 20:01:45.27ID:W5rWTuKC >>312
上のAPIの説明はbregonig.dll(v4.20)に付属の説明書からの抜き出しだよ
4. API
4.1. Bregexp.dll 互換 API (ANSI/Shift_JIS)
以下の Bregexp.dll 互換の API が使用できます。
•BMatch()
•BSubst()
•BTrans()
•BSplit()
•BRegfree()
•BRegexpVersion()
また、以下の Bregexp.dll for SAKURA 互換の API も使用できます。
•BMatchEx()
•BSubstEx()
pattern2, options の部分は bregonig.dll が自前で処理を行っており、Onigmo や Bregexp.dll あるいは Perl とは多少仕様が異なっています。(詳細は後述)
Bregexp.dll に比べて、BMatch(), BSubst(), BSplit() で s, x, a, u, R が使えるように拡張されています。なお、x は pattern1 にのみ効果があり、pattern2 には効果はありません。
Unicode API 利用時は k オプションは無視されます。漢字は常に使用可能です。
5.4. Bregexp.dll との非互換点
•オプションで k (日本語モード) を指定すると、\w は [A-Za-z0-9_] だけでなく、2バイト文字(漢字等)にもマッチするようになります。一方、Bregexp.dll では、オプション k の有無に関わらず、\w は [A-Za-z0-9_] と同義です。なお、Perl 5.8 でも、検索対象が Unicode 文字列(utf8 フラグがオン)ならば、\w は多バイト文字にもマッチします。Bregexp.dll と同じ動作にするには、オプション a を指定してください。
•Onigmo 自体は各種文字エンコーディングに対応していますが、bregonig.dll は Bregexp.dll との互換性のため、従来 API では、ASCII と Shift_JIS 以外の文字エンコーディングは使用できません。(新 API を使うことで、Ver.2 以降では UTF-16LE、Ver.3 以降では UTF-8 も使えます。)
上のAPIの説明はbregonig.dll(v4.20)に付属の説明書からの抜き出しだよ
4. API
4.1. Bregexp.dll 互換 API (ANSI/Shift_JIS)
以下の Bregexp.dll 互換の API が使用できます。
•BMatch()
•BSubst()
•BTrans()
•BSplit()
•BRegfree()
•BRegexpVersion()
また、以下の Bregexp.dll for SAKURA 互換の API も使用できます。
•BMatchEx()
•BSubstEx()
pattern2, options の部分は bregonig.dll が自前で処理を行っており、Onigmo や Bregexp.dll あるいは Perl とは多少仕様が異なっています。(詳細は後述)
Bregexp.dll に比べて、BMatch(), BSubst(), BSplit() で s, x, a, u, R が使えるように拡張されています。なお、x は pattern1 にのみ効果があり、pattern2 には効果はありません。
Unicode API 利用時は k オプションは無視されます。漢字は常に使用可能です。
5.4. Bregexp.dll との非互換点
•オプションで k (日本語モード) を指定すると、\w は [A-Za-z0-9_] だけでなく、2バイト文字(漢字等)にもマッチするようになります。一方、Bregexp.dll では、オプション k の有無に関わらず、\w は [A-Za-z0-9_] と同義です。なお、Perl 5.8 でも、検索対象が Unicode 文字列(utf8 フラグがオン)ならば、\w は多バイト文字にもマッチします。Bregexp.dll と同じ動作にするには、オプション a を指定してください。
•Onigmo 自体は各種文字エンコーディングに対応していますが、bregonig.dll は Bregexp.dll との互換性のため、従来 API では、ASCII と Shift_JIS 以外の文字エンコーディングは使用できません。(新 API を使うことで、Ver.2 以降では UTF-16LE、Ver.3 以降では UTF-8 も使えます。)
314デフォルトの名無しさん
2025/12/08(月) 12:26:55.03ID:Uac8TKoK Bregexp.dllの頃から使われてたオプションっぽいね、20年前にはあったオプションかも
315デフォルトの名無しさん
2025/12/08(月) 21:08:56.84ID:Uac8TKoK 2007年08月13日 の投稿に/kを確認
https://sakura-editor.github.io/bbslog/sf/ansi/4937.html#4960
>正規表現キーワード /\b([0-9A-F]{2})+(?=h)?/k
bregonig.dllを導入するときに/kが必要になった可能性もあるのか
しかしこれ以上調べる気にはなれなかった
https://sakura-editor.github.io/bbslog/sf/ansi/4937.html#4960
>正規表現キーワード /\b([0-9A-F]{2})+(?=h)?/k
bregonig.dllを導入するときに/kが必要になった可能性もあるのか
しかしこれ以上調べる気にはなれなかった
316デフォルトの名無しさん
2025/12/08(月) 21:53:56.42ID:PdAyBLn5 面白いわくわくする
317デフォルトの名無しさん
2025/12/12(金) 00:35:57.86ID:qdqoL0/s よろしくお願いします
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
いかのアドレス範囲に一致させたい
●対象データ
151.145.0.0〜151.145.127.255
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
いかのアドレス範囲に一致させたい
●対象データ
151.145.0.0〜151.145.127.255
318317
2025/12/12(金) 00:48:13.98ID:qdqoL0/s これで合ってますか?
(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}
(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}
319317
2025/12/12(金) 00:51:57.92ID:qdqoL0/s 間違えました
これで合ってますか?
(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}
これで合ってますか?
(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}
320317
2025/12/12(金) 00:52:53.14ID:qdqoL0/s また間違えてました・・・すみません
これで合ってますか?
151.145.(0|[1-9][0-9]?|1(0|1)[0-9]|12[0-7]).(0|[1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-5])
これで合ってますか?
151.145.(0|[1-9][0-9]?|1(0|1)[0-9]|12[0-7]).(0|[1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-5])
321デフォルトの名無しさん
2025/12/12(金) 01:16:30.11ID:9WR4PduZ 細かい部分は見てないけど
とりあえず区切りの.はエスケープしないといけない
とりあえず区切りの.はエスケープしないといけない
322デフォルトの名無しさん
2025/12/12(金) 01:18:48.94ID:/Lx6Nx9f IPアドレスに正規表現を使うなとは言っちゃダメなんだよね
323デフォルトの名無しさん
2025/12/12(金) 01:28:18.32ID:spFFJYjp その心は?
324デフォルトの名無しさん
2025/12/12(金) 01:54:49.45ID:9WR4PduZ これ前後切らないと"151.145.127.256"が"151.145.127.25"で引っ掛かるな
10進数以外の表記が混ざってたら知らん
(?<!\d)(151\.145\.(([1-9]|1[01])?[0-9]|12[0-7])\.(([1-9]|1[0-9]|2[0-4])?[0-9]|25[0-5]))(?!\d)
10進数以外の表記が混ざってたら知らん
(?<!\d)(151\.145\.(([1-9]|1[01])?[0-9]|12[0-7])\.(([1-9]|1[0-9]|2[0-4])?[0-9]|25[0-5]))(?!\d)
325デフォルトの名無しさん
2025/12/12(金) 02:17:39.16ID:VvvzoDh6 JSマクロで正規表現は文字列マッチまでにして
数値の評価はコードでやるのが素直ちゃうかな
数値の評価はコードでやるのが素直ちゃうかな
326デフォルトの名無しさん
2025/12/12(金) 03:07:41.77ID:I1NVdYVn bregoing
328317
2025/12/12(金) 09:21:33.13ID:qdqoL0/s 度々すみません
よろしくお願いします
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
1この数字(15080)だけ除外して、他の全ては一致させたい
●対象データ
10000〜65535
●結果
15080だけ除外したい
よろしくお願いします
●Regular Expressionの使用環境
サクラエディタ32bit Ver2.4.2.6048(bregoing.dll Ver.4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
1この数字(15080)だけ除外して、他の全ては一致させたい
●対象データ
10000〜65535
●結果
15080だけ除外したい
329317
2025/12/12(金) 09:38:11.84ID:qdqoL0/s また頑張って考えてみたのですが合ってますか?
(6(0-4(0-9)(0-9)(0-9)|5(0-4(0-9)(0-9)|5(0-2(0-9)|(3)0-5))))
(6(0-4(0-9)(0-9)(0-9)|5(0-4(0-9)(0-9)|5(0-2(0-9)|(3)0-5))))
330317
2025/12/12(金) 09:41:37.19ID:qdqoL0/s 全然ダメでした・・・
331317
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 を 💩 に置換しておく方が手っ取り早い
レスを投稿する
ニュース
- 青森 緊急地震速報 [ぐれ★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★3 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★2 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 【速報】衆院議員定数削減法案、自民・維新が今国会成立見送りで調整 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ ★2 [Hitzeschleier★]
- 中国「台湾は一つの中国」日本「台湾は一つの中国」高市「中国が武力により台湾を併合したら武力介入する」なにこれ? [472617201]
- 【悲報】高市早苗さん、トランプおやびんから梯子外される [115996789]
- 地蔵 [268244553]
- 日本、高市が辞任しても日中関係を改善させられそうな首相候補がいなくて詰む [329271814]
- 「ごま油」👈何に使うんだこれ [394133584]
- 【乞食速報】epicで『ホグワーツレガシー』無料キター♪───O(´ん`)O────♪ [931948549]
