探検


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以降
2デフォルトの名無しさん
垢版 |
2023/12/16(土) 08:59:57.66ID:uVHZ7e2j
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;
3デフォルトの名無しさん
垢版 |
2023/12/16(土) 09:00:18.14ID:uVHZ7e2j
◆関連サイト
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm

詳説 正規表現
http://www.oreilly.co.jp/books/9784873113593/
正規表現クックブック
http://www.oreilly.co.jp/books/9784873114507/

正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
.NET Framework の正規表現 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions
正規表現 - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
鬼車
https://github.com/kkos/oniguruma
鬼雲
https://github.com/k-takata/Onigmo
bregonig.dll(鬼雲の正規表現をサクラエディタ等で使用するためのライブラリ)
http://k-takata.o.oo7.jp/mysoft/bregonig.html
Boost.Regex 1.45.0 (日本語訳)
http://alpha.sourceforge.jp/devel/boost.regex_ja_1_45_0.pdf

秀丸: 複数行にまたがる検索について
http://homepage2.nifty.com/jr-kun/hidemaru_qa/4_regulr.html#RETURNS

サクラエディタ: 改行
http://d.hatena.ne.jp/myokoym/20101219/1292779058
※ サクラエディタでは複数行に渡る検索・置換は出来ません。
4デフォルトの名無しさん
垢版 |
2023/12/16(土) 09:00:38.18ID:uVHZ7e2j
正規表現技術入門
https://gihyo.jp/book/2015/978-4-7741-7270-5

↑の著者の一人であり Onigmo(鬼雲)やbregonig.dll の作者でもあるtakata先生のツイとQiitaの記事
https://twitter.com/k_takata

鬼雲に非包含オペレータを実装した話
https://qiita.com/k-takata/items/4e45121081c83d3d5bfd
https://twitter.com/thejimwatkins
2023/12/16(土) 17:18:36.20ID:ZkpISsx+
>>1 乙 前スレ消化するのに2年かかってるから次スレは2025年末か
2023/12/16(土) 19:02:49.70ID:UfR4i5aB
MSの.NETとMDNのJSの説明はよいけど
Perlはperlreを載せるべきじゃ
2023/12/16(土) 21:11:50.18ID:ZkpISsx+
正規表現スレのテンプレにperl公式が無かったのかw

詳説 正規表現ももうだいぶ古い
近頃の正規表現エンジンが進化しすぎてもう本に全部まとめられないよね
perlの正規表現の解説だけで1冊分になってしまいそう

>スルーされにくい質問のテンプレと例

いつもスルーしてる
2023/12/17(日) 02:07:16.68ID:OHxpVvei
>非包含オペレータ
これ包茎オペに空目するからやめたほうがいいとおもう
2023/12/17(日) 07:18:27.92ID:FEe4n35c
俺すげぇ面白い事思い付いたわ
天才じゃね?
って深夜に思い付いちゃったんだろうな
異世界転生モノ好きそう
10デフォルトの名無しさん
垢版 |
2023/12/17(日) 10:40:09.52ID:KG6/TFz3
俺も思ったけど書き込まなかった
「包茎」「空目」「深夜」どこにもかかってないんだが
>9 は異世界転生モノに親でも殺されたのか流行り物が嫌いなだけなのか
2023/12/17(日) 11:33:01.98ID:lxaANove
池沼お気に入りの言い回し:親でも殺された
2023/12/17(日) 11:52:23.27ID:uskvVvSC
どっちの方が気持ちわるいかと言えば
俺は>>9に一票

もちろん>>9 vs >>10
2023/12/17(日) 12:06:59.79ID:3hsIyhlE
まあ>>9は場違いだな
2023/12/17(日) 13:08:14.11ID:hPnGIyzU
美少女だから無罪で
2023/12/17(日) 16:47:12.08ID:C55sNZf7
以下のあぼーん用正規表現を教えて下さい

文字列3文字
文字列5文字
(空白改行)
文字列3文字

よろしくお願い致します
2023/12/17(日) 22:44:10.33ID:WFgQcr7d
文字列3文字が固有の3文字なのか任意の3文字なのかがわからん
空白と空は意味がちがうから空白改行もどうとらえていいかわからん
そういう厳格さがないと正規表現は使い切れない
2023/12/17(日) 23:44:06.80ID:6Rk7Y10s
^ \S{3} <br> \S{5} <br> +<br> \S{3} $
2023/12/18(月) 00:25:33.88ID:gHmacq4F
>>16-17
某板に荒らしが発生しているので
荒らしレスの冒頭の
─────────────────────
>>1
岡村ほまれ

可愛い
─────────────────────をあぼーんワードにしたいのです
よろしくお願い致します
2023/12/18(月) 00:54:45.24ID:zFl9jE+m
情報を小出し後出しにするやつってうざいよな
もう遅いけど使用環境を最初に示すべきだった
2023/12/18(月) 10:40:38.35ID:pykETp8J
改行の扱いは専ブラによって違うということを知っておこう
<br>だったり\sだったりする
2023/12/18(月) 11:17:13.95ID:6u0hXPC3
(?><[bB][rR]>|\r\n|[\r\n])
2023/12/19(火) 17:06:05.93ID:97fwYV9l
モ娘(狼)板に涌いている荒らし

https://kizuna.5ch.net/test/read.cgi/morningcoffee/1702957612/4-7
2023/12/20(水) 09:54:40.16ID:HDpQovyo
UPLIFT プレミアム・サービスのお知らせ

https://uplift.5ch.net/

UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。

5ちゃんねるを存続させるためには、皆様のご協力が必要です。

最後まで御精読いただきありがとうございました。
2023/12/20(水) 13:16:05.38ID:kMNBqppc
他は無料で良いサービス提供出来てるのに金払えは甘え
5ch運営が殿様商売で無策だったツケが回って来てるだけの自業自得だから、5chなんか潰れちまえ
取り敢えずNG突っ込んだわ
2023/12/20(水) 19:23:53.60ID:owPAm/QX
このスレも役目を終えつつあるね、今時の子はこんなところには来ないと思う
yahoo掲示板にでも行ってるのかな
2023/12/20(水) 21:03:08.80ID:lnEIVk9M
ChatGPTとかのAIでしょ
Yahoo掲示板こそジジイしか居ないイメージだわ
2023/12/20(水) 23:05:30.95ID:owPAm/QX
そか、AIに作ってもらえるならクレクレする必要もないね、いいことだ
2023/12/20(水) 23:36:14.45ID:z/5Qp7sj
そして「ChatGPTでXXをやってみたいんですがうまくいきません、どうしたら」というクレクレ質問が大量発生
2023/12/20(水) 23:46:12.22ID:owPAm/QX
私もそのクレクレになりそうw
2023/12/22(金) 12:31:09.65ID:ivJ9ZoTT
あるプログラムのコーディングはすごく処理速度を意識してるのに
そのプログラムに使ってる正規表現はまったく効率を考えてない,というケースをよく見かける
正規表現をAIが作るようになれば改善されるかもね
2023/12/22(金) 18:21:26.60ID:55x+HPTI
人「おいAI、お前が作った正規表現とてつもなく遅いじゃないか」
AI「はい、ヒトが解読しやすい方が良いと判断しました。速度の問題は時が経てばマシンの性能向上で解決しますが、ヒトの解読力の方は...」
2023/12/23(土) 21:28:49.10ID:jMjD4WOY
> 速度の問題は時が経てばマシンの性能向上で解決しますが

海原雄山「このポンコツAIを作ったのは誰だー」
2023/12/29(金) 19:40:02.08ID:c5lsn96k
話が高度過ぎて付いていけない
2024/01/15(月) 07:25:04.51ID:LwnsIRDe
速い正規表現ってどういうこと?
2024/01/15(月) 09:06:53.25ID:ZT1xOGvJ
ステップ数が小さい
2024/01/15(月) 15:35:12.01ID:VYSGEVd4
正規表現とてつもなく遅い でグーグル検索しようぜ
2024/01/15(月) 16:06:35.46ID:UMjmkZMs
俺にかかれば正規表現はいくらでも遅くなる
任せてくれ
2024/01/31(水) 22:37:07.48ID:jTCZHTVk
.Netが正規表現エンジンを改良したと話には聞いてたけど
6年でこんなに変わるもんなんだな

      Language Email(ms) URI(ms) IP(ms) Total(ms)
2018年 C# .Net Core 1952.13  1681.00 111.32 3744.45
2024年 C# .Net Core   6.46    3.79  19.35  29.59
https://github.com/golang/go/issues/26623
2024/01/31(水) 23:41:08.70ID:O0N6A3M6
>>38
.Net Core(現 .Net)ってそんな前からあったっけ?
2024/02/01(木) 23:01:03.30ID:YPnx34uD
.NET Core 1.0は2016だからね
2024/02/04(日) 19:04:14.97ID:1hv2Rh8g
案外歴史が長い!
2024/02/04(日) 21:10:13.35ID:GiV0zbjO
旧エンジンにマシンパワーをどれだけ積んでもネットブックで動かす新エンジンに勝てなそう
43デフォルトの名無しさん
垢版 |
2024/02/04(日) 22:35:02.60ID:FtEwRyHG
それ同じ環境と条件で比較テストしてるわけじゃないから単純にエンジンの違いによる性能差じゃないからね
2024/02/04(日) 23:23:40.51ID:l8NY0XdM
正規表現は昔からあるのに未だに進化するスピードが尋常じゃないのはすごいことだ
AIの登場でこれからどうなるのか想像付かない
2024/02/05(月) 03:06:40.22ID:UJ2m14qd
正規表現はオートマトンに変換するだけだから
AIとは何の関係もないぞ

高速化もこれ以上は理論的にできないし
書き方で速さが違うのは当たり前
46sage
垢版 |
2024/02/05(月) 15:59:30.46ID:6V7y69ze
現代の正規表現エンジンは純粋なオートマトンだけで動いているわけではないよ
2024/02/14(水) 22:19:25.22ID:2oHCpHj3
例えをあげると以下の正規表現を使った検索では

[^a]+c[^b]+

まず"c"を検索して見つからなければマッチ失敗を返す
このときオートマトンは使用されないまま検索が終わる

これは実在する正規表現エンジンの動作ではなくあくまでイメージ
AIならもっと柔軟にこういう処理が出来るかも
2024/03/18(月) 04:18:56.57ID:LIfqFVfX
そういう高速化はワイルドカードで
数パターンに分類してやったことはあるな

というわけで前段階で複数のワイルドカードをand/orでつなげた表記も受け付けるようにすれば
シンプルな分結構高速化できる
2024/03/23(土) 22:54:40.43ID:tYxC9w64
ふむ。
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で板によっては存在するのは珍しくないとまでいってるんだから
そのリンクを示すだけでいいんだぞ
2024/08/30(金) 01:14:28.93ID:8cMr2Sm2
141がありもしない難癖ではないことを示すために
メール欄がわざと「 age 」「 sage」の例
https://egg.5ch.net/test/read.cgi/software/1724332370/209-210

空白が入る板とメール欄がわざとでない「 sage」は見たことないな
2024/08/30(金) 08:58:26.65ID:qASTkovi
そんなにいつまでも続けるネタじゃないだろ
2024/08/30(金) 13:24:57.13ID:dkGEn5CF
どんぐりの醜い争い
2024/08/30(金) 17:56:05.65ID:kCrr7PoM
^(s?age|)$でどっちもNGできるわ
>>130でもう出てる
2024/08/31(土) 12:23:47.01ID:ESY986wz
見たことない == 存在しない

さすがに草
2024/08/31(土) 16:07:56.33ID:xB9BteZK
こういう専門スレでよくある現象
質問者がいなくなったのに殴り合い始める
2024/08/31(土) 19:41:26.67ID:ESY986wz
人のちょっとした不手際に噛みつき大騒ぎ
都合が悪いことを言われたらもっともらしいことを言ってごまかす

どこかの知事のマネかねぇ
2024/09/01(日) 12:11:46.90ID:ruX2CvUf
>>147に対する>>148の回答が面白い

>回答は的確に簡潔に質問に答えることがいちばん

と最初に書いておきながら聞かれたこととはまったく違う回答をしてる
2024/09/01(日) 12:54:37.81ID:mvzZbYC4
まだやってるのか
よほど悔しかったと見える
2024/09/02(月) 05:55:02.84ID:zV+ToF23
>>123から半角空白を疑うのは自然な反応だと思うが
20年前のログがあるおっさんがキレる理由が分からんね

論破されて話題のすり替えをして逃げる卑屈な人間でいるより素直に謝ったほうがマシじゃね
てか論破されてることに気付いてなさそう
2024/09/02(月) 15:51:56.49ID:AlH3f6um
いつ変わってもおかしくないような仕様をなぜそんなに信頼できるのか
…ということを抜きにしても、「実用上十分」かどうかを勝手に決めつけるのは…
というか、>>127 で終わりじゃだめだったのか?
2024/09/02(月) 21:11:06.60ID:uqoOZz2h
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
163
垢版 |
2024/09/02(月) 21:44:55.24ID:Y7//7QQC
偽・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
164デフォルトの名無しさん
垢版 |
2024/09/03(火) 00:47:33.48ID:dSkXog9i
内輪もめは巣に帰ってやれや屑共
2024/09/03(火) 11:11:23.38ID:JwjQ1m/O
次から「>>127に帰れ」でok
向こうにも正規表現作れる人いるみたいだし

知事そっくりのおっさんはしばらく謹慎しとけ
2024/09/03(火) 11:14:09.37ID:d9bMT2aR
内容的に割と単純かつどうでもいいネタに限って長引く傾向にあるな
2024/09/03(火) 13:28:50.53ID:FknR0mX7
>>126で終わってるんだよ
補足説明込みでも>>130までで以降は無価値
2024/09/04(水) 07:40:52.55ID:EbiVCIQx
>>121>>131が空気になっててかわいそうなんだが
誰か構ってやれよ
169デフォルトの名無しさん
垢版 |
2024/09/10(火) 05:40:09.20ID:+qdzMQ7n
質問なのだが、htmlファイルで
<DOCTYPE からつづいて途中にあるAAAをごっそり空欄で置換したいのだが
どうやったらええん
^<DOCTYPE*AAAじゃうまくいかんかったのよねー
2024/09/10(火) 06:04:34.38ID:kowefQA5
<DOCTYPEEEEEEEEEAAA「ぐわぁ!!
2024/09/10(火) 14:57:41.04ID:W69Tu2B8
DOCTYPE*は、DOCTYPの後にEが0回以上繰りかえしているものを表すけど本当にそうなってるとは思えん
DOCTYPEEEEEEAAA
2024/09/11(水) 03:14:10.70ID:qNF+YH3h
昔の仕様をごそっと<!doctype html>に統一したいなら
^<!doctype.*>で置き換えすりゃいいんじゃね、見当違いならごめん
2024/09/11(水) 07:51:29.11ID:9V6SWpAY
.*>

人に教えていいレベルじゃねぇ
2024/09/11(水) 08:07:51.41ID:qNF+YH3h
すぐに気づくだろ初心者スレってわけじゃなし
2024/09/11(水) 08:42:50.99ID:HzXBBqr9
すみません、全部消えました
2024/09/11(水) 08:45:08.47ID:9UoQOhuf
>>174
無能
2024/09/11(水) 08:51:56.08ID:4F/AxKNI
またはじまった
こいつほんとにクソやな
2024/09/11(水) 09:13:11.67ID:qNF+YH3h
そもそもスクリプトなのかエディタなのか
具体的な例も使用方法も書かずに答えが出るわけねえよ
2024/09/11(水) 13:19:20.05ID:9V6SWpAY
回答は的確に簡潔に質問に答えることがいちばん

>>169
^<DOCTYPE.*?AAA
2024/09/11(水) 14:41:32.83ID:e/oUHwOW
通常先頭に書くDOCTYPEは
<!DOCTYPE html ~>ってなると思うんだが、!は何処に行った?
さらにAAAとか出てくるか?
AAAがdoctypeと無関係ならその間に改行も挟まってるかもしれんよ
2024/09/11(水) 15:58:20.52ID:9V6SWpAY
<DOCTYPE
.*?

人に教えていいレベルじゃねぇ
2024/09/11(水) 16:32:04.44ID:NXAVPXLE
>>181
なんじゃそりゃww
2024/09/11(水) 18:51:15.50ID:DnMjWL2Z
シングルラインモードでフォルダ内jsonを正規表現でgrep検索できるフリーのテキストエディタ教えて
windowsで動いてGUIしっかりしてる使いやすいのがいい
2024/09/12(木) 00:04:43.72ID:uYEhMGBt
外部コマンド取り込めてパスからジャンプできるエディタならなんでもいいんでは
vim/neovimとかvscodeとか
2024/09/12(木) 09:42:50.94ID:71tHR6b6
シングルラインモードと言うと複数行に渡ってマッチさせたいと?
拙者がつこうてるエディタは一行単位でしかマッチ出来なかったでござる
186デフォルトの名無しさん
垢版 |
2024/09/12(木) 10:05:19.60ID:fOf5lfVo
ワイルドカードと性器表現
どうしてこうなったマン心環境の違い
2024/09/12(木) 11:27:45.34ID:G9h42jpn
>>183
grepとエディタは別々でいいだろ
GUIのgrepソフトは外部エディタを呼べるようになってる(呼べないものって多分無い)
テキストエディタはそれこそ何でも良い
俺はDevasってgrepソフト使ってるがこれも過去に適当に探したものなのでもっといいものがあるかもしれない
2024/09/12(木) 11:34:30.88ID:G9h42jpn
いや、json限定ならjsonエディタとか使えばいいんじゃなかろうか
2024/09/12(木) 14:21:47.53ID:iwy8LWRU
>>183
非ascii文字はユニコードエスケープされてる?
2024/09/12(木) 14:33:20.53ID:G9h42jpn
JSONだから基本UTF-8なんじゃないのか?
2024/09/12(木) 14:35:15.82ID:G9h42jpn
パーセントエスケープか
あるのとないのと両方あるしなあ
2024/09/12(木) 14:54:08.26ID:71tHR6b6
北製のエディタ選んでぶっこ抜かれてるやつはいないな?
出所の怪しいやつは避けるんだぞ?
2024/09/12(木) 16:03:08.30ID:3oNIjHZT
>>184
>>187
ありがとう使ってみる
対象ファイルはUTF8で改行はLFとCF+LF混合(1ファイル内では統一)
日本語2バイト文字はエスケープなしに普通に表記されてる
2024/09/12(木) 16:55:26.60ID:tplSlOtQ
>>187,193
dnGrepも良い

マッチ箇所の前後数行表示やマッチファイル全体プレビュー表示でサクッと探して
diffとtext editor用の外部コマンドラインを複数登録して使ってる
(有名どころのテンプレートあり)
2024/09/12(木) 17:00:09.50ID:G9h42jpn
>>193
テキストエディタは何でも良いとは言ったけど
起動引数にファイル名と行位置を指定できるものじゃないと使い物にならない
メモ帳はダメだが大抵大丈夫
2024/09/12(木) 17:38:37.00ID:G9h42jpn
>>194
良さそうだなと思ったらwin7には無理っぽい(.NET8だとか)
2024/09/13(金) 06:32:33.01ID:11vS+uA+
>>196
文字エンコーディング自動判別が出来るので、ちょっと古めのcp932とUTF8の混在環境で重宝すると思ったがそれは残念

>>183,193は大丈夫そうだけど(根拠なし)
2024/09/23(月) 23:23:59.22ID:kDMCxsRj
pcre2の作者さんが後継者探してる
27年続けてきて最近年を感じるようになったとか
2024/09/26(木) 08:21:09.95ID:JQMFr7dw
老朽ソフトウェアの後継者問題って
需要があれば勝手にメンテされるし無ければ消えるだけだよ
正規表現は時代に合ってないからこの概念ごと消えるかもしれない
2024/09/26(木) 20:55:23.73ID:DovoaZNg
>>199
正規表現が時代に合ってないってどういうこと?
2024/09/26(木) 22:02:49.37ID:KgNEnM1+
たぶんだけど自然言語で書く、かな
いまでもコンパイルはしてるし
曖昧な表現だとランタイムエラーになるのはおなじ
2024/09/26(木) 22:22:27.94ID:ingxpjLa
AIと喋ってろ
2024/09/29(日) 08:05:17.90ID:rL2U3h48
自然言語を聞いたAIが作るのが正規表現というオチ
既存の正規表現エンジン用の正規表現ではなくAIが生成した正規表現を動かすためだけの
正規表現エンジンも生成される
既存の正規表現エンジンと比べてデータサイズが小さく不要な機能が無いため高速に動作

64コアCPUでテキストデータの64ヶ所を同時に検索
正規表現がテキストにマッチしない場合の速さが2024年時点の通常検索の速さを超えてしまう

野良猫理論: ある限られた空間であちこちをうろつく複数の野良猫が置き餌を見つけるのに
かかる時間は頭数の二乗に反比例するような気がする理論
2024/10/01(火) 11:39:53.35ID:Z3sXryIq
>>203
>野良猫理論:
なるほど、そうかも
2024/10/01(火) 11:45:14.33ID:v9xyba12
>>203
妄想はAIとすれば捗るぞ
2024/10/06(日) 00:20:41.41ID:YLpbtiCB
DFA 「NFA、僕は君のことをクリーネ閉方したい」
NFA 「受理できません」
2024/10/08(火) 20:25:00.73ID:2vPrSKyO
久しぶりにプログラム板にきました
あるwebサイトのたとえばx0000からx99999までのurl内それぞれ個別にあるたとえば日付等の項目を
すべてカンマ区切りで抜き出す正規表現を考えようとしましたが
結局、項目が10個まであるわけじゃないので
<!DOCTYPE.*ほにゃらら項目、ほにゃらら項目…ほにゃらら項目、ほにゃらら*</html>
てのを10まであるわけじゃない項目分それぞれ抜き出しました
本来なら、 項目,項目,項目…… で抜き出せるように一発で正規表現使えば何とかなるのでしょうけれど、
項目だけの列といいましょうかx0000の項目Aからx9999の項目Aをまずだして
次にx0000の項目Bからx9999の項目Bを次に出してと
結局その項目が10までとはいかないけれどその分をだして表計算ソフトにつっこんだわけです
結果できましたがどうにも納得がいきません

正規表現が出来ればきっとっとも楽に時間もかからずできたのでしょう

JaneXeno質問スレ9
https://egg.5ch.net/test/read.cgi/software/1722559511/
いまこのスレにいたりもします。
2024/10/08(火) 22:03:57.17ID:XPh9YV+I
>>207
1. まず日本語を整理する能力を身につけましょう
2. 次にテストケースを整理する能力を身につけましょう
3. そして1.と2.で身につけた能力を使ってChatGPTに問い合わせましょう

さすれば望む答えが楽に得られます
2024/10/09(水) 01:44:24.09ID:WkCTujRI
ここは野良猫理論を数学的に証明するスレになりました
2024/10/09(水) 02:26:53.03ID:LpRCWPua
すごく読み難いし目的も読み取れない
終わってる
2024/10/09(水) 03:04:13.75ID:w53uZCE9
頑張って2回読んだけど何のアドバイスもできそうにない
212デフォルトの名無しさん
垢版 |
2024/10/09(水) 05:04:10.76ID:z5soGBkc
Excel VBA 質問スレ Part81
とやらにいる障害者みたいだね
2024/10/09(水) 09:59:45.33ID:nVMNMgni
DOCTYPE全然関係なかったんやな
>>180がアタリ
>>179,181はハズレ
2024/10/09(水) 12:56:32.38ID:WkCTujRI
とりあえずxenoをあぼーん登録しといた
2024/10/10(木) 13:27:21.21ID:WHQFPCFe
そういえばこのスレが伸びたのも発端は>>120だったな
>>120みたいな難問を気軽に質問されたら困る
2024/10/12(土) 15:23:11.12ID:gMUOKJHq
●Regular Expressionの使用環境
VS Code 1.94.2 の検索バー

●検索か置換か?
置換

●説明
htmlファイルを開いている。
href属性が .css で終わらない場合に属性値を空文字列へ置換したい。
href="[^"]+(?!\.css)"を検索したが .css で終わっていてもマッチしてしまう。

●対象データ
<a href="URL.css">link</a>
<a href="a.html">link</a>
<link rel="stylesheet" href="a.css">
<link rel="stylesheet" href="b">

●希望する結果
<a href="URL.css">link</a>
<a href="">link</a>
<link rel="stylesheet" href="a.css">
<link rel="stylesheet" href="">
217>>216
垢版 |
2024/10/12(土) 15:33:12.91ID:gMUOKJHq
原理はよくわかりませんが自己解決しました
href="[^"]+(?<!\.css)"
2024/10/12(土) 16:13:01.24ID:qxhXc26A
href="[^"]+(?!\.css)"

<a href="URL.css">link</a>で"[^"]+の最後の文字はs
つまりsの位置では.cssではないのでマッチする
2024/10/12(土) 16:15:48.04ID:qxhXc26A
sの後ろ(つまり")の位置に訂正
2024/10/12(土) 17:58:39.21ID:hwVWGPYm
正規表現関係ないけどhtmlタグ周りの操作は
できるだけDOM経由でやっておいたほうが楽で安全だと思う

htmlの書き方がみんな揃ってるとは限らないし
<div>href="foo"</div>とかlocation.href=“bar”にはマッチしないようにするとか
いろいろ考慮ポイントが増えてミスするリスクも高くなる

DOM経由でやっておけばその辺は安心
document.querySelectorAll("[href]:not([href$='.css'])").forEach(x=>x.setAttribute("href", ""))
2024/10/13(日) 15:34:10.31ID:josLIOo8
>>217
それ大正解だよ、すごい
それ以上のものを作れと言われたら大抵の人は悩む
というか>>217の答えに辿り着けない人が多数かと
2024/11/02(土) 23:35:42.52ID:5ILrPZJU
正規表現のオペレータの分類についての質問です
assertionにアンカーやバウンダリを含める分類はあまり見かけませんが何故でしょう?(例dotnet文書)

以下(多分regex界で著名な)参考サイトより引用
Assertions. The traditional regular expression metacharacters ^ and $ can be viewed as assertions about the text around them: ^ asserts that the previous character is a newline (or the beginning of the string), while $ asserts that the next character is a newline (or the end of the string). Perl added more assertions, like the word boundary \b, which asserts that the previous character is alphanumeric but the next is not, or vice versa.
https://swtch.com/%7Ersc/regexp/regexp1.html

確かにマッチに含まれないという意味ではよくassertionであると言われるlookback/aheadと同様です
何か含めないことで利点があるのでしょうか?
2024/11/09(土) 12:53:50.15ID:k7Zpjetb
これに答えられる人はここに数人いるかどうかなのでは
(私はもちろん答えられません)

勘で答えるなら先読み、後読みは後から出てきたものなので元からあった
^ $ \b とは別物扱いになった、とかですかね?すみません、分かりません
2024/11/09(土) 21:56:49.21ID:f+X68XQj
(ゼロ幅)アサーションには含まれる、(ルックアラウンド)アサーションには含まれない

でもルックアラウンドアサーションだけを指して単にアサーションと呼ぶなんてことがあるかな、大体何か修飾語がついてるよね?
単にアサーションと呼ばれるのはゼロ幅アサーションの方だと思う
実際参考サイトもそんな感じだろう知らんけど
225デフォルトの名無しさん
垢版 |
2024/11/19(火) 12:37:58.18ID:UdPT9kjC
Google spreadsheetでREGEXREPLACE関数で置換するやり方を教えていただけないでしょうか
実行したい内容は以下の通りです。

●Regular Expressionの使用環境
Google spreadsheet

●検索か置換か?
置換

●説明
英文の各単語の先頭1文字以外をアスタリスクに置換したい
カンマとピリオドとハテナは置換しない
アポストロフィは置換する

●対象データ
Oh, it’s sunny today.
Do you understand?

●希望する結果
O*, i*** s**** t****.
D* y** u*********?
2024/11/19(火) 13:15:50.46ID:qWVXBGcO
俺の知識の範囲では正規表現だけでは不可能
2024/11/19(火) 13:28:40.67ID:TpNNC8ku
その環境がわからんので一般的な場合として
/(?<=[^ ,.?\n\r])[^ ,.?\n\r]/*/g
/(?<=[a-z’'])[a-z’']/*/ig
2024/11/19(火) 13:45:50.24ID:qWVXBGcO
なるほど。後読を使えばいいのか
229デフォルトの名無しさん
垢版 |
2024/11/19(火) 14:33:47.46ID:UdPT9kjC
後読はこの関数では使えないようなのですが、関数ではなくて置換機能なら使えるようなので試してみます!
ありがとうございました!!
2024/11/19(火) 15:02:42.11ID:TpNNC8ku
The problem is the ’XXX’.
こういうのはあるのかな?
2024/11/19(火) 15:19:15.00ID:TpNNC8ku
>>228
正規表現のどの文法を使うかじゃなくて、どういう論理にするかを思いつくかどうかだから
(とんちクイズと一緒で発想力の問題)
なお230のようなケースがあるのならおそらく再起を使う必要がでてくると思う
232デフォルトの名無しさん
垢版 |
2024/11/19(火) 15:56:13.16ID:UdPT9kjC
>>230
これは想定していなかったですが今回はなさそうです
2024/11/19(火) 17:34:15.15ID:G+8Uvgpo
Apps Script使うのがシンプルなこともある
2024/11/19(火) 23:06:51.29ID:TpNNC8ku
/(?<=[a-z]|[a-z]')[a-z]|(?<=[a-z])'(?=[a-z])/*/ig
(アポストロフィは半角のみにしてる)
This is the 'Tom's Home'.
→ T*** i* t** 'T**** H***'.

無理ーー
'Rock'n'Roll' is "Rock 'n' Roll". → 'R**********' i* "R*** 'n' R***".
'' is NULL strings. → '' is NULL strings.
2024/11/20(水) 17:07:45.94ID:vf/ffllo
regexpは数学(キリっ
2024/11/20(水) 17:38:18.40ID:ibyj9elY
ウザっ
237デフォルトの名無しさん
垢版 |
2024/12/12(木) 23:55:43.32ID:9bmybcd/
暫く使わないとすぐ忘れてしまう
低スキルだから使う頻度が少なくて記憶が定着しない
2024/12/13(金) 00:12:32.38ID:EgfV0Bor
わかる
特に(?!これ系一切覚えてない)
2024/12/13(金) 13:01:50.92ID:hybzdr+3
=^^= こんな演算子をどこかの記事で見た記憶はあるけど意味は忘れた
2024/12/13(金) 13:19:30.73ID:Zywldz4i
  ∧,,∧
  (=^v^) にょほほー
  /  l
 (OuuO
241デフォルトの名無しさん
垢版 |
2024/12/19(木) 16:02:37.82ID:1szj+7uv
●Regular Expressionの使用環境
テキストエディタのMeryや、テキストエディタのgPadの置換

●検索か置換か?
検索

●説明
英文中のスペース以外の、他のスペースを削除したいです。

●対象データ
平和 戦争
AA XVA ZZ
昭和 平成 令和
NIHON BUNKA
経済 学部
Ishiba Naikaku
●希望する結果
平和戦争
AA XVA ZZ
昭和平成令和
NIHON BUNKA
経済学部
Ishiba Naikaku

※いま現在はネットを探してやっと見つけた
(?<![a-zA-Z])\s|\s(?![a-zA-Z])
を使ってます。これは連続スペースやTabにも対応してるのが良い点と思います。
ただ、全角スペースは削除出来ませんし、改行まで削除されて1行テキスト文に
なるという短所があり、また手動で改行しなくてはならず非常に手間です。
全角スペースはまだ良いとして改行削除がされないように改善できませんでしょうか?
よろしくお願いします。
2024/12/19(木) 16:06:40.57ID:wZwgXxbf
なかなかの丸投げだな
¥sを[ \t ]
243デフォルトの名無しさん
垢版 |
2024/12/19(木) 17:08:28.91ID:1szj+7uv
>>242
希望通りになりました。即レス大感謝ありがとうです。
いちおう自分なりに半年間ほど色んなパターンに変えてやってみてたんですが、大変助かりました。
2024/12/20(金) 20:07:37.02ID:7538eGNC
すげー半年がかりの疑問を瞬殺か
やっぱ詳しい人に聞いておくものだな
2024/12/21(土) 01:36:35.41ID:lQ0nYrFo
半年同じ問題に取り組める根気は素晴らしいが初心者は効率が悪いね
Googleとかは20分だか30分だか手が止まったら質問しろって企業文化らしい
2024/12/22(日) 15:36:39.77ID:8OMG/th9
メモ
Meryで\sを全角スペースにマッチさせるには(?u)\sかFindOnig=1
2024/12/23(月) 12:51:43.05ID:hOdCdrxj
半年あったら正規表現覚えたほうが早いな、Meryクリスマス
2024/12/23(月) 12:59:50.83ID:hOdCdrxj
I have a pen. I have an apple.
2024/12/31(火) 20:44:10.06ID:Thw2Z7nN
(?<=This year)(?=Next year)
2025/01/04(土) 18:21:54.49ID:YsNNcli5
<title> を
\<title\> って書かないとエラーになるケースってあるの?
2025/01/04(土) 19:03:21.90ID:0KLOcGyc
GnuRegexとGrepでは\<と\>は特別な意味を持つ、それぞれ単語の先頭、単語の末尾にマッチする
だから<title>にマッチさせたいのではなくtitleにマッチさせたいのかも

\<と\>で囲えばbigtitleやtitleholderにはマッチしなくなる
2025/01/04(土) 20:47:05.52ID:a+K50MRq
Gnuって書いたらヌーになるがな
2025/01/04(土) 21:43:10.75ID:12P97q6K
メタ文字 \b が使えない環境ってことなんだろうか?
2025/01/04(土) 21:56:58.81ID:0KLOcGyc
うぐぅ

>>253 高須クリニック
2025/01/04(土) 22:07:44.40ID:0KLOcGyc
すまん、二刀流だった
https://www.gnu.org/software/grep/manual/html_node/Special-Backslash-Expressions.html
2025/04/05(土) 13:05:55.46ID:/X2GFnPw
GeminiにChatでやりたいこと入力したらずばりの正規表現回答してくれんのすごすぎて草
そんで最強のGrep検索・置換ツールのVScodeにその正規表現をコピペするだけの簡単なお仕事
マジで更新もされず陳腐化したクソ使い難い正規表現アプリやサービスがすべて駆逐されんの納得でクソワロタ
257デフォルトの名無しさん
垢版 |
2025/04/05(土) 14:35:59.22ID:dD+UMa0w
VSCodeやのにCopilotつかわんのなんでなんw
置換はperl -i -peが手軽にコードも介在できて未だに最強
2025/04/05(土) 17:01:54.69ID:yzm+sG/V
文章でミジンコだとわかるだろほっといてやれ
2025/04/07(月) 00:01:48.06ID:HqNk85Dr
一方、ロシアは秀丸エディタを使った
2025/04/07(月) 18:30:32.29ID:+glSnyRi
米国がEmEditorを使うところから物語は始まるのか
2025/05/07(水) 13:34:42.62ID:VK/GbxYn
後方参照を初めて使ってみた
なるほど便利
後方を参照するのかと思っていたが後方で参照すると言う意味だった
2025/05/08(木) 20:10:04.49ID:a95yfZhU
ぎょぎょぎょ?参照うお
2025/05/08(木) 20:37:02.88ID:NyjQsc8w
ぎょえーー
264デフォルトの名無しさん
垢版 |
2025/06/10(火) 10:10:19.59ID:JUI3rKzN
置換……指定した文字を置換します。
@AA@A@.TXTの"@"を"Q"に置換(場所の指定無し)
QAAQAQ.TXT - すべて置換される

@AA@A@.TXTの"@"を"Q"に置換(場所を指定)

前から1文字目 : QAA@A@.TXT - 前から1文字目のみ置換
前から4文字目 : @AAQA@.TXT - 前から4文字目のみ置換
後から1文字目 : @AA@AQ.TXT - 後から1文字目のみ置換

削除……指定した場所にある文字を削除します。
ABBAA.TXT、ACCAA.TXTの前から2文字目から右に2文字を削除
ABBAAB.TXT → AAAB.TXT
ACCAAC.TXT → AAAC.TXT
2025/07/13(日) 21:04:57.49ID:Dpndt2SK
iOSです
このスレで訊いて良いのかわかりませんが
Instagramの画像はその投稿のURL、例えばこれ↓

https://www.instagram.com/p/DL6O8f3zfb-/

の末尾に「media/?size=l&.jpg」を加えると投稿の一枚目の画像URLになります


https://www.instagram.com/p/DL6O8f3zfb-/media/?size=l&.jpg

しかし、2枚目以降の画像URLがわかりません
「media/?size=l&.jpg」をいじって2枚目以降の画像URLが作れませんでしょうか
ご教授お願いします
2025/07/13(日) 21:12:41.07ID:SOWPf8Mn
正規表現関係ねーw
2025/07/13(日) 21:19:50.98ID:Dpndt2SK
どこで訊いたら良いのかわからず、パソコン詳しい人が多そうなここで質問させて頂きました
2025/07/14(月) 01:14:36.64ID:KR/EmCR1
和んだ
2025/07/14(月) 02:28:52.50ID:yh4CMksV
PC詳しい人が多そうなスレでそういう質問を受け付けていると
馬鹿が多そうなスレに成り下がると気が付かないものかね
2025/07/25(金) 05:51:04.25ID:3r8TzWYu
>>264
sed の出番か?
271デフォルトの名無しさん
垢版 |
2025/08/09(土) 13:09:26.08ID:AY2Xi2Yg
SNSやWeb検索もたいてい正規表現対応してるからプログラミング以外で活用できる場面が増えてなんか嬉しい
2025/08/14(木) 17:46:16.07ID:ll+c+ksk
そんなに対応してるのある?
2025/09/29(月) 18:28:57.47ID:omFFHDum
^[^:]+://+([^:/]+\.)?

これの//+部分って//だけで問題ありますか?
2025/09/29(月) 19:15:27.09ID:QGaGSVZY
>>273
その正規表現の目的は理解できてるの?
2025/09/29(月) 21:45:19.64ID:SNsW5d6C
>>273
スラッシュをエスケープしなきゃいけない環境で使う正規表現かどうかによる
エスケープしなきゃいけない環境なら問題があるしそうじゃない環境なら問題ない
2025/09/29(月) 22:25:44.67ID:RjmgsX7I
file://で次が/になる場合はある

https://en.wikipedia.org/wiki/File_URI_scheme
2025/09/29(月) 22:54:22.13ID:FkLCZ8/e
何にマッチさせたいかによるわな
278デフォルトの名無しさん
垢版 |
2025/10/25(土) 12:46:17.09ID:BjPJz/dc
【悲報】4/24に鬼車がgithubで開発終了したのに続いて
鬼雲(bregonig.dll)の公式サイトが9/30で閉鎖
http://k-takata.o.oo7.jp/
https://x.com/k_takata/status/1970461557374230654
2025/10/28(火) 01:47:57.16ID:WdB2Psfo
鬼車はJavaScriptの仕様に寄せろと細かいことまで言われて
嫌気がさしたのかなという印象だけど真相は作者のみぞ知るか

ただ最近はDFAキャッシュを使うエンジンの台頭で
これとかboost.regexが速いとされた時代はとうに終わってるんで
マルチバイト対応を必要とする人以外はあまり影響ない気もする
280デフォルトの名無しさん
垢版 |
2025/11/02(日) 19:07:30.81ID:vGsY1NrW
「正規表現技術入門」を読むと、GNU grep ではマッチング途中で必要になった部分だけ
オンデマンドで DFA を構成していく On-the-Fly 構成法を使っている、と書かれてるけど
どのレベルから On-the-Fly してるんでしょ ?

部分集合構成法で NFA を DFA に変換する所からなのか、もっと前のε-遷移除去からなのか
あるいはさらに前の正規表現をパースして NFA を作る所も On-the-Fly なんですかね ?

GNU grep のソース見ろと言われそうだけど
2025/11/02(日) 20:01:30.27ID:JoUIYtII
正規表現の枠を超える後方参照(\1)とかで使ってそう
あれが絡むと事前にDFA作れない
2025/11/02(日) 20:13:48.87ID:JoUIYtII
正則言語の枠か
用語がちょっと怪しい
2025/11/03(月) 19:15:39.49ID:6hs01YZr
>>280
自己レス。AI に聞いたら

| GNU grepでは、DFA の生成に On-the-Fly(実行時逐次的)な手法を採用していますが、
| それは基本的に部分集合構成法を逐次的に行うことを意味します。
| ε遷移の除去も、このプロセスの中で実質的に On-the-Fly で行われます。

とのことでした。やっぱε-除去も On-the-Fly なのか、ムズいなー

>>281
GNU grep の On-the-Fly 法は、到達しない状態ノードを作らないようにすることで
省メモリ化と高速化が目的なので、DFA の構造自体が動的に変わるものではないと思ってました。

で、言われるように後方参照は正規言語のクラスを超えてるので、DFA 型エンジンでは
普通は実現出来ないのだけど、「正規表現技術入門」では

| GNU grep は基本的に DFA 型ですが、部分的(後方参照への対応のためなど)に一部
| VM 型のアプローチもとっています。

とかさらっと書いてあるだけで、具体的な記述はないんすよね (やっぱ入門書だな)。

でも言われてみれば、On-the-Fly 的に動的に DFA を構成して行けば、それで後方参照も
実現出来そうな気がしてきた。バックトラックとか面倒そうだけど一考の価値はあるかも

GNU grep もそうやって実装してる ? かどうかは分からないけど
2025/11/05(水) 01:01:25.63ID:hq1L/1I1
それわかったらなんか良いことあるの(クルクルパー
2025/11/07(金) 00:31:17.29ID:Ua2fzQVD
NFA使わずに正規表現から直接DFAを構成する方法がDragon Bookに書いてあるけど
この書籍は今もDragon Bookで通じるのかな
もう古文書扱いされてそう
2025/11/07(金) 17:38:51.77ID:2v77MqUc
>>285
情報ありがとうございます
やはりドラゴンブックは読まざるを得ない感じですかね
読んでみます (気は重いけどw)
2025/11/07(金) 18:36:08.56ID:Ua2fzQVD
Dragon Bookでpdf検索すると大学のサイトとかで英語版が引っ掛かるけど旧版はセーフなのかな
DFAの構成法は第2版だと3.9節
少なくとも3章は最初から読んだ方がいいと思う
コンパイラに興味ないなら全部読む必要はない
2025/11/07(金) 19:00:36.04ID:Ua2fzQVD
そういえば正規表現自体の解析で4章前半のTop-Down Parsingくらいまでは役に立つかも
2025/11/07(金) 20:27:12.90ID:2v77MqUc
>>287
ありがとうございます。旧版 (日本語訳) はT、U共にさっき中古をポチりました
届くのは来週末だけど、図書館に第二版があるようなので明日行ってきます
コンパイラに興味ない、とまでは言わないけど、果たしてそこまで手を広げられるものなのか心許ないす
2025/11/11(火) 08:03:53.83ID:TgiPYl91
こういう方に最新版をポンと出す制度にならんもんかな
2025/11/11(火) 14:34:01.30ID:XyI6oP+4
複数の正規表現を使い分けられる記法があるといい
2025/11/20(木) 00:34:25.20ID:mbRrNt6G
DragonBook (第2版) の第3章まで読んだら、>>280 に書いた ε-遷移についての最初の疑問も氷解してしまったので、
一応伏線回収しておきます

「正規表現技術入門」では、ε-遷移を除去した後で部分集合構成法を行う、という流れで記述されていたので、
部分集合構成法を行うには前もって ε-遷移を除去しなければならない、と思い込んでいたのだけど、
その必要は全くなかったのでした

部分集合構成法の処理の中で一つ部分集合が得られたら、その集合の ε-閉包を取って
(その集合に そこから ε-遷移する状態を全て加えて)、それを DFA の 1 状態とすればよいだけなのでした

>>283 に書いた AI の回答が何となく歯切れが悪かった理由もこれで納得出来たわけで、
何でこんな簡単なことを思い付かなかったのか、我ながらアホでしたね

「正規表現技術入門」は章ごとに執筆者が違っていて、VM 型エンジンの章は鬼雲の作者が直々に書いていて説得力があるのですが、
DFA 型エンジンの章、とくにこの ε-遷移あたりの記述は今一つな感じです (エラそうに言ってますが)

--
ところで DragonBook 3.9 節の「正規表現から直接 DFA を導くやり方」も読みました
シンプソン構成法を経由せず、構文木から DFA を導くのはスゲーと思ったのですが
followpos() の張るダイアグラムは一種の NFA 的なものなので、それを DFA に変換する時には
やはり部分集合構成法と同じ手法を使うわけですね
とは言え ε-遷移が存在しないので扱う状態数もずっと少なくて済むはずなので、
これを使って On-the-Fly 法を実装して行きたいと思ってます

何にせよ、DragonBook を読めと言ってくれた >>285 さんには感謝しかないです
ありがとうございました
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 の名前を間違えるとはヤバ過ぎ
2025/11/22(土) 12:38:05.41ID:Vr8VfdEk
黄色くなりそう
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:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=s; aspf=s;
303302
垢版 |
2025/12/04(木) 00:04:57.89ID:VPJDZJTH
/(?<==)(\S)+/kで出来ました
ありがとうございました
2025/12/04(木) 06:08:13.61ID:eAywzaH6
どういたしまして!
2025/12/06(土) 22:50:10.26ID:2DkcA45J
セミコロンはどこいった
2025/12/07(日) 02:42:31.53ID:R0icGBd3
DMARCレコードの末尾はセミコロンなくてもいいからじゃね?
それより修飾子kがなにかきになる
307デフォルトの名無しさん
垢版 |
2025/12/07(日) 07:46:42.62ID:UCYK391B
プログラムでなくて正規表現メモパッド環境での質問でも良いですか
任意の文字をHTMLエンコード(16進数数値文字参照)するコマンドってありますか

文章:正規表現
検索:規
置換:⸨REGEXコマンド⸩
結果:正&#x898F;表現

的な
308デフォルトの名無しさん
垢版 |
2025/12/07(日) 11:24:43.85ID:DIZ3oEXF
イヤん置換
2025/12/07(日) 14:08:32.54ID:9FE0dLzx
>>306
>DMARCレコードの末尾はセミコロンなくてもいいからじゃね?
なるほどね

>それより修飾子kがなにかきになる
文字のハイライトをしたいときに使うオプションのようだけど
/kが必要になる理由は分からないな
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オプションが付いていますが、改行をまたいだ検索はできません。)
2025/12/07(日) 16:06:20.28ID:W5rWTuKC
サクラエディタにはUnicode版もあるらしいが、そこでも //k が使われるのかは不明
まあこれをそのままユーザーに指定させるってのもどうかなってのは思う
2025/12/07(日) 19:50:15.24ID:FNtb5kKI
bregoing
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 も使えます。)
2025/12/08(月) 12:26:55.03ID:Uac8TKoK
Bregexp.dllの頃から使われてたオプションっぽいね、20年前にはあったオプションかも
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が必要になった可能性もあるのか
しかしこれ以上調べる気にはなれなかった
2025/12/08(月) 21:53:56.42ID:PdAyBLn5
面白いわくわくする
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
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}
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}
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])
2025/12/12(金) 01:16:30.11ID:9WR4PduZ
細かい部分は見てないけど
とりあえず区切りの.はエスケープしないといけない
2025/12/12(金) 01:18:48.94ID:/Lx6Nx9f
IPアドレスに正規表現を使うなとは言っちゃダメなんだよね
2025/12/12(金) 01:28:18.32ID:spFFJYjp
その心は?
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)
2025/12/12(金) 02:17:39.16ID:VvvzoDh6
JSマクロで正規表現は文字列マッチまでにして
数値の評価はコードでやるのが素直ちゃうかな
2025/12/12(金) 03:07:41.77ID:I1NVdYVn
bregoing
327317
垢版 |
2025/12/12(金) 09:10:56.65ID:qdqoL0/s
>>324
ありがとうございました!
ログの抽出なので、.256は記録自体されないので大丈夫でした
助かりました
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だけ除外したい
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))))
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))))
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だけ除外したい
2025/12/12(金) 12:13:35.22ID:rpg4U98A
エディタで実行するってことは手作業が前提なのかな?
それなら検索に先立って 15080 を 💩 に置換しておく方が手っ取り早い
335デフォルトの名無しさん
垢版 |
2025/12/12(金) 12:54:36.94ID:5G5yyPjc
(?!15080)(5桁特定範囲マッチ文)
あとは任せた
2025/12/12(金) 14:08:50.61ID:GFwk6EHV
ログ抽出なら普通にgrepすればいいじゃん
除外したければgrep結果に-vで再grep
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
うーん、ちょっとアサーションについて誤解していたところがあったかも。考え直してみますわ。
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でストップする
354デフォルトの名無しさん
垢版 |
2025/12/14(日) 20:13:40.52ID:pwvrkpuI
この正規表現で前後の半角空白を除く
descriptionだけを一致させる正規表現を教えて欲しいです
環境はサクラエディタです

/ ?description /
2025/12/14(日) 21:35:52.99ID:IHataGt8
/description(?= )/
356デフォルトの名無しさん
垢版 |
2025/12/14(日) 21:55:21.25ID:pwvrkpuI
>>355
ありがとうございました!
2025/12/14(日) 23:41:29.96ID:IHataGt8
>>346
戻り読み・先読みアサーションにはそれぞれ肯定と否定があります
(?<=肯定戻り読み) (?=肯定先読み)
(?<!否定戻り読み) (?!否定先読み)
2025/12/15(月) 15:01:06.10ID:3kfMtGyS
複雑な正規表現をawkなどに書き換える、
逆に正規表現に戻す
そんなツールがあればいいのに
359デフォルトの名無しさん
垢版 |
2025/12/15(月) 15:36:51.41ID:u2LUgxm/
AIωにやらせてみたら
2025/12/29(月) 21:58:52.64ID:mqxopxhe
●Regular Expressionの使用環境
 bregonig.dll Ver.4.20 with Onigmo 6.2.0 (JaneXeno)
●検索か置換か?
 置換
●説明
 URLの一部が削られた文字列を置換したい
●対象データ
 ttps://mevius.5ch.net/その他文字列
 tps://mevius.5ch.net/その他文字列
 ps://mevius.5ch.net/その他文字列
 s://mevius.5ch.net/その他文字列
 ://mevius.5ch.net/その他文字列
 //mevius.5ch.net/その他文字列
 /mevius.5ch.net/その他文字列
 mevius.5ch.net/その他文字列

 ttp://mevius.5ch.net/その他文字列
 tp://mevius.5ch.net/その他文字列
 p://mevius.5ch.net/その他文字列
●結果
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列
 https://mevius.5ch.net/その他文字列

 http://mevius.5ch.net/その他文字列
 http://mevius.5ch.net/その他文字列
 http://mevius.5ch.net/その他文字列
361360
垢版 |
2025/12/29(月) 21:59:07.48ID:mqxopxhe
よろしくお願いします
2025/12/30(火) 05:55:09.00ID:bcWUa/MK
^.*(mevius\.5ch\.net/.*)
https://\1
ニャン美mevius.5ch.net/その他文字列も置換されちゃう
2025/12/30(火) 06:05:12.11ID:RY68pJU/
>>362
最初のドットを文字クラス [htps:/] にするとか
少なくとも誤爆は減らせるはず
364360
垢版 |
2025/12/30(火) 11:26:41.11ID:08XhdD3t
>>362
すみません、この部分はランダムでした
mevius.5ch.net/その他文字列
2025/12/30(火) 13:59:05.54ID:kaQsBrDf
(((((((h?t)?t)?p)?s?)?:)?/)?/)?【残り部分】
https://【残り部分】

俺の頭ではhttps決め打ちしかできませんでした
366360
垢版 |
2025/12/30(火) 18:13:17.87ID:08XhdD3t
1個ずつ置換することにしました
2025/12/30(火) 19:42:45.38ID:OIM6lPsW
1個ずつ置換のほうが処理速度が早いからそれで良いかと
2026/01/03(土) 10:24:35.26ID:1DqJer1z
株式会社アイ・エス・ビー
https://kizuna.5ch.net/test/read.cgi/infosys/1756826944/
2026/03/09(月) 16:19:30.66ID:tEa6zL8y
あれ、ここ何で突然誰もいなくなってるんだ
滅んだ?
2026/03/09(月) 16:27:21.82ID:gMc7Mbxi
居るけど特に書き込むことは無いので
2026/03/09(月) 17:59:13.15ID:lN/WVeRH
いつもみています
2026/03/12(木) 15:15:39.77ID:JXIbhzLr
AIに聞けば教えてくれるからここに来ることが1回もなくなった
2026/03/13(金) 15:44:29.05ID:NwOBfCS7
ないた
2026/04/01(水) 02:01:17.13ID:xr+15+VW
●Regular Expressionの使用環境
サクラエディタ Ver. 2.4.2.6048
(bregoing.dll Ver.4.20 with Onigmo 6.2.0)

●検索か置換か?
置換

●説明
{ と }の中の「半角スペース」を「半角スペースOR半角スペース」へ置換しと、{ と }削除したいです

●対象データ
<apps:property name='from' value='{@microsoft.com .microsoft.com @microsoftonline.com .microsoftonline.com}'/>

●希望する結果
<apps:property name='from' value='@microsoft.com OR .microsoft.com OR @microsoftonline.com OR .microsoftonline.com'/>

よろしくお願いします
375374
垢版 |
2026/04/01(水) 02:48:48.51ID:xr+15+VW
追記です
{}内の半角スペース区切りの数は可変です
2026/04/01(水) 12:50:24.55ID:ZV4q3Y97
二重のカッコは?
先頭、末尾の半角スペースは?
{ a b {c d} e {f g} h }
2026/04/01(水) 13:45:57.78ID:gpBf0Bo5
>>376
無知はおれみたいに黙っとけよ
378374
垢版 |
2026/04/01(水) 17:26:45.87ID:xr+15+VW
>>376
削除&置換したい部分の先頭末尾には半角スペースは含まれません、間に括弧も含まれません
よろしくお願いします
379デフォルトの名無しさん
垢版 |
2026/04/01(水) 17:49:19.57ID:U0/PTuSJ
急いでる場合はAIに聞くと
380374
垢版 |
2026/04/01(水) 18:10:15.39ID:xr+15+VW
{ と }を消す正規表現と
{ と }の中の「半角スペース」を「半角スペースOR半角スペース」へ置換する正規表現の
2つでも構いません
よろしくお願いします
381デフォルトの名無しさん
垢版 |
2026/04/01(水) 18:32:14.73ID:04Amv8rt
{}の中にOR挿入
\s([^\s'<>{}]+)(?=[^'<>{}]+}'[^<>]*>)
\ OR \1

{}削除
(\s\w+=)'\{([^'<>{}]+)\}'(?=[^<>]*>)
\1'\2'
382374
垢版 |
2026/04/01(水) 18:56:25.11ID:xr+15+VW
>>381
完璧です!
超ありがとうございました
こういう正規表現を書ける人ってすごいですね・・・
383デフォルトの名無しさん
垢版 |
2026/04/01(水) 19:45:53.35ID:ncoapRgH
開いた[]が塞がらない
2026/04/05(日) 04:48:16.80ID:nknNPcVr
こういうの見るたびに、お前ごときに完璧かどうかがすぐに理解出来るのか?と思ってしまう
もう少し上手くおだてられないのか
2026/04/05(日) 10:03:30.99ID:4pVEjMa6
>>384
目的が果たせればそれは完璧だ
お前のレスは何の役にも立たず目的も果たせない
よってお前は低IQ低EQ
2026/04/05(日) 11:48:25.27ID:Kvl48Unp
構造化データを非構造化データとして扱うというのは基本的にアンチパターン
>>374の設定を仕事でやってるなら違うアプローチを考えたほうがいい
2026/04/05(日) 13:43:28.46ID:EiGHJr/o
きれいに終わってたのになあ
388デフォルトの名無しさん
垢版 |
2026/04/05(日) 13:54:34.38ID:fzfl5CpE
言葉のとり方に難があるとしか思えんな
ひがみにこじつけて自身の妬みを正当化したに過ぎず何の生産性もない
2026/04/05(日) 16:01:00.09ID:xABEkFfA
>>387
職場でも居る
マウンてくるけど回答するでもなく代案出すわけでもなく手前がやるわけでもないっていう中高年
2026/04/05(日) 16:01:52.61ID:xABEkFfA
訂正

>>387
職場でも居る
マウントしてくるけど回答するでもなく代案出すわけでもなく手前がやるわけでもないっていう中高年
391デフォルトの名無しさん
垢版 |
2026/04/05(日) 16:04:04.88ID:tC5vSryu
>>386
馬の耳に念仏唱える馬鹿だなお前は
392デフォルトの名無しさん
垢版 |
2026/04/05(日) 16:06:43.47ID:rx3lUF1j
>>390
いるいる
>>384>>387みたいな自己満足オナニーおぢ
キショすぎて困る
393デフォルトの名無しさん
垢版 |
2026/04/05(日) 16:08:32.95ID:7dY9HEdO
レス番飛んでんのか?
387じゃなくて386だろ
394デフォルトの名無しさん
垢版 |
2026/04/05(日) 16:14:52.69ID:4pVEjMa6
>>386
これgmailのフィルタだろ
{}でもORでも同じだ
よって質問者の希望は構造化非構造化関係ない
お前が理解力低くて阿呆なこと言ってるだけ
親いなくて野良犬にでも育てられたのか?
2026/04/05(日) 20:35:07.35ID:uxbA7ICP
( [.@])
OR$1

[{}]
396デフォルトの名無しさん
垢版 |
2026/04/05(日) 21:43:10.28ID:vktgtqwx
>>395
ゴミ貼るな
2026/04/05(日) 22:51:38.08ID:oQdVzKyp
>>394
>{}でもORでも同じだ
>よって質問者の希望は構造化非構造化関係ない
めちゃ関係あるじゃんw
意味わかってる?
398デフォルトの名無しさん
垢版 |
2026/04/05(日) 22:58:33.32ID:spnCNTFq
>>397
犬の言葉は分からん
ワンワンとしか聞こえない
399374
垢版 |
2026/04/05(日) 23:04:23.47ID:B+wTc8s7
なんか荒れててすみません・・・

>>386
構造化というのは何のことか分かりませんが、
Gmail Filter Managerという拡張があってORでつながないとインポートできないんです
400374
垢版 |
2026/04/05(日) 23:09:50.44ID:B+wTc8s7
>>395
試してみましたが駄目でした・・・

以下のように_の部分に半角スペースを入れてみましたが希望通りにはなりませんでした
{}内が.と@から始まるものだけではないからだと思います
( [.@])
_OR$1

>>381さんに教えてもらったもので希望を100%満たしてるので大丈夫です
ありがとうございました
2026/04/06(月) 16:07:56.54ID:vyjciAxd
こら!知的なケンカはやめなさい!
402デフォルトの名無しさん
垢版 |
2026/05/02(土) 15:59:37.67ID:EFxMfN5/
PowerShellはバッチコマンドの引数から"^"(キャレット、サーカムフレックス)を除去してしまうのでバッチコマンドに正規表現を渡しづらいね
バッチコマンドに"[^0-9]"を渡したい場合は"[^^^^0-9]"とエスケープして渡す必要がある
2026/05/03(日) 22:01:28.57ID:U+o3w/Vn
AIに聞けば他の対策もいろいろ教えてくれる
ただしAIは知ったかぶりすることもあるから動作確認は必須
2026/05/03(日) 22:12:51.62ID:flEHwPM5
curlに渡す場合によく^^^を使ったもんだ
コマンドプロンプトを使う場合はここでよく躓く
2026/05/03(日) 22:17:14.91ID:flEHwPM5
いやbatでってこと
406デフォルトの名無しさん
垢版 |
2026/05/04(月) 23:15:51.91ID:Jfo4Jf9/
いまさらながらなんでWindows版のegrep.exeとfgrep.exeがgrepをラップしたバッチコマンド形式ではなくわざわざバイナリ形式になっているのか理解できた
バッチコマンドだと渡した引数に含まれる"^"が削除されて不都合だからだね
2026/05/06(水) 02:56:46.87ID:CbvZh1Nf
●Regular Expressionの使用環境
サクラエディタ Ver. 2.4.2.6048
(bregoing.dll Ver.4.20 with Onigmo 6.2.0)

●検索か置換か?
置換

●説明
・4行で1セットになっています
・1セットの内1行目の行末のCRLFはタブに置換したいです
・1セットの内2行目の行末のCRLFもタブに置換したいです
・1セットの内3行目の行末のCRLFはCRLFのままでいいです
・1セットの内4行目のCRLFのみの行は削除したいです
・2セット目も同じ処理をしたいです
・使われている文字はA-Z、a-z、0-9、ひらがな、半角コロン:、全角括弧()、半角ハイフン-、全角スラッシュ/、漢字です

●対象データ
ABCDEF\r\n
11:22:33:44:55:66\r\n
あいうえお\r\n
\r\n
xyz1234567890(- /)\r\n
11:22:33:44:55:66\r\n
かきくけこ漢字\r\n
\r\n

●希望する結果
ABCDEF\t11:22:33:44:55:66\tあいうえお\r\n
xyz1234567890(- /)\t11:22:33:44:55:66\tかきくけこ漢字\r\n

よろしくお願いします
408デフォルトの名無しさん
垢版 |
2026/05/06(水) 07:58:35.39ID:4C1XaSSi
4行目が必ず空行/1-3行目が必ず内容あり、なら
(1)いったん\r\n⇒\tに全置換
(2)\t\t⇒\r\nに全置換
とかやるのが楽だけど、どうだろ
2026/05/06(水) 11:27:02.64ID:cnVvFbK6
テキストエディタは改行をまたぐ置換が苦手だからサクラエディタの仕様を調べないといけないね
面倒くさいからAIに丸投げしてこういう置換プログラム作ってってお願いすれば作ってくれそう
2026/05/06(水) 13:36:21.40ID:1SVzPnT0
サクラエディタは行またぎ非対応
1. \r\n→未使用文字ダミー文字列
2.ダミーダミー→\r\n
3.ダミー→\t

行またぎ対応なら4行マッチ3行捕獲
^(.*)\r\n(.*)\r\n(.*)\r\n\r\n
$1\t$2\t$3\r\n
2026/05/06(水) 20:07:46.57ID:EBMzzDT6
行またぎ非対応のやつとか案外あるんだ
2026/05/06(水) 21:04:41.50ID:1SVzPnT0
たぶんgrep ベースだと行指向
2026/05/06(水) 21:22:18.19ID:D350Ut84
Visual Studioが複数行マッチに対応しているね
ただしドット"."に改行が含まれるから細心の注意が必要だけど
414407
垢版 |
2026/05/06(水) 21:33:01.75ID:CbvZh1Nf
>>408
できました!
超ありがとうございました

>>410
これだとできませんでした・・・
^(.*)\r\n(.*)\r\n(.*)\r\n\r\n
$1\t$2\t$3\r\n
2026/05/06(水) 22:00:26.54ID:cnVvFbK6
テンプレの>>3に書いてあった
bregoing.dllはまだ現役だったんだね
2026/05/06(水) 23:32:00.95ID:hu9+ldR8
>>414
元のデータが行単位で切り出されていて
1行分しかデータが無い状態で正規表現が実行されると思われるので
複数行データがそもそも無いので無理
2026/05/07(木) 00:55:44.85ID:cPjD8Hv8
>>416
実行できないクソの役にも立たないレスはご遠慮くださいますようスレ民一同心よりお願い申し上げます。
2026/05/07(木) 13:11:44.36ID:r6HNCc+R
プログラム作ったほうが安心確実メンテ楽
プログラム分かりませんなら仕方ない

試しに

4行ひとかたまりのデータの最後に"end"の3文字を追加するpythonプログラムを下さい

をgoogle検索したらいけたからプログラム知らない方でもなんとかなりそう
2026/05/07(木) 14:25:58.00ID:gJqX98ka
>>417
毎回自演バレバレだからそういうレスは自重しといたほうがいいぞ
2026/05/07(木) 16:16:09.84ID:cPjD8Hv8
>>419
無能な回答した貴方の自演と言うことは分かります
2026/05/07(木) 18:50:18.48ID:Bxzv9Zfd
>>420
君がそう思いたいならご自由にどうぞ

つか有能な回答なんてなかったと思ったが君にとっては有能な回答があったんだね
それはなによりでスレ民一同よりお祝い申し上げますw
2026/05/07(木) 19:41:04.10ID:r6HNCc+R
417が切れてる理由がさっぱり分からんがAI荒らしか何か?
416は当たり前のことを書いてるだけに見えるが417にはどう見えてるんだ
2026/05/07(木) 20:54:31.60ID:tYXcxSRQ
メ欄見てから相手をしよう
2026/05/07(木) 21:03:03.54ID:cPjD8Hv8
>>421-422
何であと出しでこんなクソみたいなレスしたの?
^(.*)\r\n(.*)\r\n(.*)\r\n\r\n
$1\t$2\t$3\r\n
2026/05/07(木) 21:10:25.91ID:cPjD8Hv8
ちゃんと仕様を理解してから回答しましょう
仕様を理解しているのに仕様外の回答をするオナニーレスをする変態はお引き取りください
2026/05/07(木) 21:29:39.54ID:H2rHVG+N
>>425
荒らしているのはお前 ID:cPjD8Hv8 のほうだぞ
技術板で人格攻撃じみたことをするな
2026/05/07(木) 22:07:25.43ID:cPjD8Hv8
>>426
質問に対して回答になっていないレスをしている奴が荒らしだろ
質問者はテンプレに従って書いてるし第一の回答者は正しい回答しているし
それで解決しているし
第二の回答者が荒らし確定

以降は俺もレスしないからお前もレスするなよ
この件に関してはこれで終わりな
これ以降、この件に関してレスした奴は荒らし確定
この件の定義は質問に対して解決しているのに解決しない回答を後だしする自慰レスについてな

以上
428デフォルトの名無しさん
垢版 |
2026/05/07(木) 22:25:44.37ID:H2rHVG+N
善意の回答者が間違った回答をすることはいつでも起こりうる
善意の回答者を罵倒していたら誰も回答できなくなってしまう
ルールを勝手に決める行為は慎め
レスするなという一方的な押し付けを慎め
正しい回答だけ欲しいなら質問せず仕様書を読め
429デフォルトの名無しさん
垢版 |
2026/05/07(木) 22:32:51.00ID:Gftn+938
>>410のどこが善意の回答なのか説明して欲しいねぇ
説明を求めるなって?

じゃあ>>410は悪意のある荒らし回答で決定な
説明は求めるなよ
2026/05/07(木) 23:00:37.73ID:r6HNCc+R
ふむふむ、"408で綺麗に解決したのに汚しやがって" みたいな感じ?
408は確かに質問者を満足させる回答で素晴らしい回答だったよ

しかし410と413の組み合わせは解決策として成立している(ドットの問題はあるが)
君は質問者がこういう情報を得られる機会を失うことが良いことだと思うかい?
君は賢いから自分の間違いにすぐ気付くだろう
2026/05/08(金) 10:35:12.81ID:zKOtTGyw
410の正規表現はダメだろ
2026/05/08(金) 10:54:51.39ID:Z+p2VFA6
>>428
>ルールを勝手に決める行為は慎め
>レスするなという一方的な押し付けを慎め
回答者が善意かどうかとか俺は別にどうでもいいけど、この2つには激しく同意する
ID:cPjD8Hv8のやってることは明らかに荒らし
自覚もあるのにいつも同じことをやるからたちが悪い
2026/05/08(金) 11:29:13.89ID:yHIiuh7O
>>431
このスレには解決したのにgdgd言うガイジが住みついてるから

>>432
要望を満たさないどころか全く動作しない正規表現をレスする行為は慎め
もはや全く動作しない正規表現は荒らしレスであるから慎め
これは押しつけ以前に5chのルールであるから慎む慎まない以前の問題である
2026/05/08(金) 11:30:55.70ID:yHIiuh7O
次スレはワッチョイ付けよう
そうすればガイジをNGしやすくなると思う
ガイジだからワッチョイころころする可能性も否定できないが
2026/05/08(金) 11:33:27.41ID:zKOtTGyw
要望を解決した後で派生の話題をする分には俺的には問題ない
むしろ歓迎するよ
元データからして1行分しかないという情報も無駄に正規表現をあれこれ試行するのを防ぐという役には立つだろう
質問者はそれでもやったみたいだが
2026/05/08(金) 13:13:22.72ID:h3TBS6Dt
素人なのでよく分からないので410が何故ダメなのか教えて下さい
437デフォルトの名無しさん
垢版 |
2026/05/08(金) 14:44:31.73ID:fpn3bHal
連続しない単体の1文字にマッチする正規表現を教えてください
使う文字は、数字、平仮名、記号などいろいろです
(例)
検索:AABADDCCCDBBCAAA
置換:AAXXDDCCCXBBXAAA
必須じゃないですが、2連続まではマッチなどと指定できたら尚ありがたいです
2026/05/08(金) 14:59:31.66ID:e0XYRuju
単体の1文字にマッチ
(?<!(.)\1)(.)(?!\2)
1〜2連続まではマッチ
(?<!(.)\1)(.{1,2})(?!\2)
439デフォルトの名無しさん
垢版 |
2026/05/08(金) 18:14:47.37ID:fpn3bHal
>>438
すいません
いろんなテキストエディタで試しましたが
構文のエラーで動作しませんでした
2026/05/08(金) 20:51:49.76ID:J+TE0A6u
連続しない単体の1文字
(?!(?<=(.))\1)(.)(?!\2)
2連続まで
(?!(?<=(.))\1)(.)\2{0,1}(?!\2)
441デフォルトの名無しさん
垢版 |
2026/05/08(金) 22:12:29.54ID:g+j7hC7F
>>440
どっちも完璧に動作し解決できました
教えていただいてありがとうございました

お手数ですいませんあともうひとつ教えてもらいたいのですが
連続しない任意の1文字だけにマッチさせる場合がわかりません
(例:連続しない任意の文字@をIに置換え)
検索:@A@@AA@A@BBCBC
置換:IA@@AAIAIBBCBC
2026/05/08(金) 22:43:57.96ID:FKG508Ye
一文字決まってるなら
(^①)①(^①) → $1⑩$2
443デフォルトの名無しさん
垢版 |
2026/05/09(土) 00:03:02.43ID:FJMh0TIY
>>442
ありがとうございます
検索結果がマッチ無しとなるので、[^@]@[^@]のことではと思いましたが
これではA@A@Bの部分にまとめてマッチして
@A@@AI@BBCBCという結果になり
希望のかたちとはなりませんでした
2026/05/09(土) 00:21:32.26ID:sbT9j+e6
(?<!@)@(?!@)
445デフォルトの名無しさん
垢版 |
2026/05/09(土) 00:54:28.73ID:FJMh0TIY
>>444
素晴らしく希望する置換ができました
今夜はよく眠れそうです
ご親切にありがとうございました
2026/05/09(土) 07:14:17.14ID:sWrfC/g9
>>408は明らかにトリッキーな解決方法です
手間がかかり、何度も行うには非効率です
まっとうな方法での解決策もあるはずで
それを教えずに満足してしまうのは頂けません

質問者がサクラエディタを使っているから
サクラエディタでなんとかしなければならない
正規表現スレで質問しているから正規表現で
なんとかしなければならない
そんなふうに考えてはいけません
むしろ「正規表現でやるな!」と言える回答者になって下さい
447413
垢版 |
2026/05/09(土) 07:34:54.42ID:ELyObXm1
今確認したらVisual Studioの正規表現"."に改行に含まれなかったので帝政
2026/05/09(土) 09:09:13.25ID:sWrfC/g9
android studioで試しましたが同様でした
"."は改行にはマッチせずでしたが代替として[\s\S]を
使えば複数行のマッチに成功しました
ただし円記号とバックスラッシュは別文字扱いなので注意が必要です

私なら>>408の方法ではなく>>410を修正して使うでしょう
2026/05/09(土) 09:50:18.06ID:VgQE41DB
410の上の方法で連結した場合
単純に(.*)ではダメな点に注意(.に置換した文字が含まれるため複数行がキャッチされる場合が出てくる)
450413
垢版 |
2026/05/09(土) 10:51:04.16ID:ELyObXm1
>>447 の「改行に」を「改行が」、「帝政」を「訂正」に、それぞれ訂正

>>448
macOSのX codeとAndroid Studioはフラグ設定"(?s)"で"."を改行"\n"にマッチできるけど、非強欲マッチungreedyフラグ設定"(?U)"は無理だった
pcre2やre2そのままならungreedyにも対応しているはずなんけど。。。
macOSのVisual Studio Codeはフラグ指定そのものが使えない
WindowsのVisual Studioはフラグ設定"(?s)"で"."を改行"\n"にマッチできるのに"\r"にマッチしない謎仕様だったわ
2026/05/10(日) 10:57:13.49ID:iEm9a63w
>WindowsのVisual Studioの"r"
面白いですね、どんな事情があったのか気になります

>"(?U)"
これ、初めて見ました
このようなマイナーな機能は知らない人が多いので
混乱の原因になりやすいためあまり使わないように
しようという暗黙のルールがあったりします
2026/05/10(日) 15:36:13.58ID:iEm9a63w
同じ理由で"(?s)."より"[\s\S]"が使われるから"\r"の問題が
実用上は問題にならないと判断されたのかも知れませんね
453410
垢版 |
2026/05/10(日) 16:22:50.41ID:Bn3N3I/I
悔しくて荒らしてしまいました
2026/05/14(木) 13:13:12.37ID:SsMn8/y0
>>449
>410の上の方法で連結した場合
>単純に(.*)ではダメな点に注意(.に置換した文字が含まれるため複数行がキャッチされる場合が出てくる)

何が言いたいのか分からない、上の方法と書いてるのに(.*)が出てくるし
".に置換した文字が含まれる"の状況もよく分からない
2026/05/14(木) 13:44:16.39ID:TEbsF9lW
gdgd能書きはいいからコピペして実際に動く正規表現を貼れ
貼れないなら荒らすなゲェジ共
2026/05/15(金) 10:34:04.44ID:jDd3RQZH
>>455
>>410の下の正規表現を試しにプログラムに突っ込んで動かしてみたら
期待通りの処理をしてくれましたよ

あなたは何に対して怒ってるのか意味不明です
>>410の正規表現に問題があると言うならそれを指摘しましょう
「ここがダメだからこう直すべきだ」と一言言えば済む話です
2026/05/15(金) 14:16:03.08ID:ZxBZz0IU
>>456
それが本当であれば期待通りの処理をしたという証拠を出しましょう
出せなけれな貴方は嘘つきです
もちろん条件は>>407です

置換前:^(.*)\r\n(.*)\r\n(.*)\r\n\r\n
置換後:$1\t$2\t$3\r\n

正規表現:bregoing.dll Ver.4.20 with Onigmo 6.2.0

サクラエディタ:Ver. 2.4.2.6048
2026/05/15(金) 14:45:43.25ID:jDd3RQZH
あなたが問題点を指摘出来ない理由が分かりません
問題点があるなら早く書いて下さい

小学生相手に逃げたいならご自由に
2026/05/16(土) 06:11:39.43ID:dLJKRrTZ
逃げましたね
クソだのダメだの言っておいて問題点を指摘出来ないなんてダサいにも程があります
問題点を指摘出来ないなら>>410に謝るのが筋だと思いますが出来ますか?
また逃げたいならご自由に
2026/05/16(土) 09:30:10.15ID:/CgggpFu
まずは>>410自身が>>410で動作する証拠動画を出す必要があります
話はそれからです
それが筋です
461デフォルトの名無しさん
垢版 |
2026/05/16(土) 11:04:37.76ID:/5X7//tn
まずは自信満々で疑問を呈する側から先にその根拠を示すのが常識であるが
容易いことであろうそれをサッサと示さずに何かと理由を付けては拒否してる意味がわからん
2026/05/16(土) 14:29:10.80ID:dLJKRrTZ
可哀想なのでそろそろ許してあげますか
正規表現が動く証拠が"動画"なのはなかなか面白いギャグでしたよ

称号 「小学生から逃げ切った男」を獲得しました

おめでとう
2026/05/16(土) 14:35:34.34ID:/CgggpFu
410は動きません
間違いです
すみませんでした
2026/05/16(土) 14:44:20.67ID:dLJKRrTZ
>間違いです すみませんでした
うん、許してやる
2026/05/16(土) 17:29:42.31ID:dLJKRrTZ
>>410を叩きたいなら下でなく上を叩くべきでした
上は>>408の劣化版と言って良いです
ダミー文字列を\tとして良いことは質問内容から判断出来ます
この違いにより>>410の上は手順が1つ増えています

下はプロでもツッコミを入れるのは容易ではないでしょう
ただの空行の連続にもマッチしてしまう問題や
改行コードを\r\nで決め打ちしている点を突くと良いですが
どちらも言い訳可能であるため論破するのは難しいでしょう
プログラミングの素人には勝ち目がありません、残念でしたね
2026/05/16(土) 22:47:04.41ID:/CgggpFu
>>410は私ではなくID:dLJKRrTZです
2026/05/16(土) 23:21:26.44ID:s+ahQy5v
そして>>411はわたしです
2026/05/17(日) 15:42:06.89ID:/GdzKT3f
わたしは>>436です
正規表現の知識はまったくありません
AIに聞いて回答してました
2026/05/18(月) 14:38:40.31ID:FIgcoQMd
>>427
第二の回答者は>>409です
質問者は初めからAIに質問すれば良かったのです
唯一まともな回答は>>409です
アップデートして下さい
2026/05/21(木) 20:15:15.30ID:8g1yKFDE
誰が誰なのか
2026/05/21(木) 21:14:19.97ID:tXRV1A0H
J( 'ー`)し「全部わたしだよ」
2026/05/22(金) 00:00:27.83ID:RKg/C8Kx
デウス…!
2026/05/22(金) 07:21:55.75ID:lj9rXATn
ちょっとパソコンやスマホを使いこなせるようになっただけで
勘違いして上級者気取りしてしまうアホが定期的にわく板

クリーネ閉包なんて聞いたこともないだろう
ここは学区最上位クラスの秀才がうじゃうじゃいる板だ
半端な知識と幼稚園児レベルのメンタルで来ても恥をかくだけ

さて、今日もチューリング機械で田植えしないと
2026/05/22(金) 13:04:35.20ID:h1O+4dQh
うむ、植毛の季節だ
2026/05/22(金) 13:19:55.30ID:gOmbP4hz
文字列に対する正規表現結果を使ったハイライト表示を自分で実装するのは意外と楽しい
2026/05/24(日) 19:20:21.82ID:avyHEBhm
プログラム言語用のハイライトは重くなりやすい
動作の軽い正規表現の作り方を知らない人が作ると重くなりやすい
アプリの評判にまで関わるからアプリ作者は重視すべき
477デフォルトの名無しさん
垢版 |
2026/06/05(金) 07:39:23.44ID:l0w9Pe0T
Coreutils for Windowsに付属するgrepは正規表現ライブラリとしてpcre2ではなくOnigurumaを使ってるみたいだね
PowerShell上で grep -P -e "\p{sc:han}" aaa と入力実行したら、以下のエラー文字列が返ってきた

grep.cmd: invalid pattern "\p{sc:han}": Oniguruma error: invalid character property name {sc:han}

grepをRustで実装しなおしてるみたいだけど、「Known Issues」にも「Performances need to be improved」と書かれているとおり処理速度は遅い
巨大テキストファイルに対して"\p{han}"で漢字を探す速度テストをしたらCoreutilsのgrepはripgrepよりも5倍弱遅かった
ripgrepもRust使っているから改善の余地はまだまだありそう

以下は、Coreutilsと付属grepのgitレポジトリ

Coreutils for Windows
https://github.com/microsoft/coreutils

Grep, now in Rust
https://github.com/uutils/grep
2026/06/06(土) 10:45:34.99ID:Oa2waA8Q
速度比較面白そうだけどwindows環境が無かった
2026/06/06(土) 12:50:17.39ID:avhJY7dK
>>477
ripgrepはデフォルトで並列処理だから速いのは当たり前
比較対象が間違ってる
480デフォルトの名無しさん
垢版 |
2026/06/06(土) 13:47:10.13ID:A4Gfe8Wl
>>477
そのポート、Pオプションって指定してるのにPCRE(2)使ってないと互換性に問題が出るな
481デフォルトの名無しさん
垢版 |
2026/06/06(土) 14:56:09.21ID:SQIW+QID
>>479
600MB超の単体ファイルでテストしただけからripgrepはわざわざ並列処理を使ってないはず
Coreutilsのgrepは"武田"などの固定文字列だとripgrepと同じくらい速かったから、
正規表現ライブラリの性能に大きく依存してそうな感じがする
482デフォルトの名無しさん
垢版 |
2026/06/06(土) 15:31:09.58ID:A4Gfe8Wl
自分もregexエンジン律速だと思うけど
ioの差があるのか確かめたかったら
どちらも高速なripgrepとugrepでPオプションを付けて計測するかな
483デフォルトの名無しさん
垢版 |
2026/06/06(土) 20:27:27.06ID:SQIW+QID
以下の日本語Wikipediaテキストbz2書庫を展開すると19725892117バイト、266676659行になる
https://dumps.wikimedia.org/jawiki/20260601/jawiki-20260601-pages-articles.xml.bz2

Coreutilsのwc -lコマンドでテキストファイルjawiki-pages-articles.xmlの行数を計算したところ、所要時間は約3.5秒となった
& 'C:\Program Files\coreutils\cmd\wc.cmd' -l 'jawiki-pages-articles.xml' -> 3.5457081s


以下のようにPowerShellでコマンド引数を$paramsで渡すものとした。
$params=('-ic', '-e', '^', 'jawiki-pages-articles.xml');

windows git版grep, chocolatey版rg, chocolatey版ugrep, pcre2をMSVC2026でビルドしたpcre2grepでそれぞれ計測した。
各実行バイナリの所要時間は以下の通り。
& 'C:\Program Files\coreutils\cmd\grep.cmd' -a -P @params -> 31.2892649s
&"C:\Program Files\Git\usr\bin\grep.exe" -a -P @params -> 16.4189897s
rg -a --no-heading -N -P @params -> 16.7601986s
ugrep -a -P @params -> 8.3243997s
pcre2grep -U @params -> 14.1089445s

評価
・chocolatey版ugrepがかなり速く、シンプルなwc -lコマンドの約3.5秒に対してugrepが8.3秒でかなり健闘している。
・PCRE2を使うwindows git版grep, chocolatey版rgがいずれも16秒台で、pcre2grepの14秒より少し遅いが近いオーダー。
・CoreutilsのgrepはPCRE2を使う実行バイナリよりも2倍近く遅い。
484483
垢版 |
2026/06/06(土) 20:44:56.15ID:SQIW+QID
なお、PowerShellには既定で見やすい計時コマンドがないので以下に、独自timeコマンドを用意した

function time($block) {
$sw = [Diagnostics.Stopwatch]::StartNew()
& $block
$sw.Stop()
Write-Host("$($PSStyle.Italic)$($PSStyle.Foreground.Yellow){0,-24}$($PSStyle.ItalicOff)$($PSStyle.Foreground.BrightGreen)`t{1}$($PSStyle.Foreground.Cyan)s$($PSStyle.Reset)" -f $block, $($sw.Elapsed.TotalSeconds))
}

timeコマンドの実行例は以下の通り
> time { grep -acPi '武田' .\jawiki-pages-articles.xml }

実行結果例は以下の通り。

62447
& 'C:\Program Files\coreutils\cmd\grep.cmd' -acPi '"武田"' .\jawiki-pages-articles.xml 19.7067166s

ここでは62447行が"武田"にヒットし、所要時間は21秒ほど。上述の"^"での31秒より速いのが謎。
余談ながら、grepがC:\Program Files\coreutils\cmd\grep.cmdに展開される理由はよくわからないが、PowerShellのユーザー設定ファイルがCoreutilsインストール時に改変された影響と思われる。
485483
垢版 |
2026/06/06(土) 20:50:36.45ID:SQIW+QID
訂正。"武田"を検索する所要時間は21秒ほどではなく19秒ほど。なんどかやってみたが2秒程度の誤差は普通に出るっぽい。
使ったCPUは、Intel Core Ultra 7 265K。
2026/06/06(土) 22:52:21.77ID:Oa2waA8Q
マッチする回数が多いと遅くなると仮定すると"武田"より"鈴木"は遅くなるはず
487デフォルトの名無しさん
垢版 |
2026/06/08(月) 07:00:19.15ID:iZR3lOJN
正規表現ゴリ押し部
https://wbsb.dev/articles/7f1c80ce-25ce-4dbf-a6aa-202c98bd6882
488デフォルトの名無しさん
垢版 |
2026/06/14(日) 09:22:30.28ID:CULM30OO
ugrepはギガサイズの潤沢なメモリを使える今時のPCに最適化されてて良いね
巨大単体ファイルを検索するとugrepがripgrepよりも2倍以上速いのは、単体ファイル検索までもがマルチスレッド化されているからだろう
2026/06/18(木) 14:21:37.36ID:2N0+Im+D
●Regular Expressionの使用環境
JavaScript
※実際はbregonig.dll Ver.4.20 with Onigmo 6.2.0ですが、
 極力、高度な正規表現は使わない表現で検索したいです

●検索か置換か?
検索

●説明
5chの縦書きに一致する正規表現を知りたい

●対象データ
URL先のResult:欄を参照
専ブラJaneXenoで取得した5ch.ioのdatデータ(2レス分)です

●希望する結果
URL先の1行目と2行目の「本文部分」に一致するようにしたいです
本文が数値参照の場合も一致させたいです
※本文部分はID:*<>の次の半角空白から行末の半角空白<>までです

●ググって自分で出来た部分
https://www.debuggex.com/r/0PzX0xU0fvKFZ9Um

よろしくお願いします
490489
垢版 |
2026/06/18(木) 14:26:31.61ID:2N0+Im+D
すみません、補足です

●希望の補足
前後途中の全角半角空白は無視して1行に1文字(数値参照含む)の行が3回以上繰り返された場合を検索したいです

●こういうのを検索したいです

 い
  う
   え
  お 
2026/06/18(木) 14:40:44.72ID:OZ+7dDz1
正規表現は数値参照を一文字として認識できないので、プログラミング言語を使うべき
2026/06/18(木) 22:25:22.95ID:jDQmweOk
>>489
(?:<> |<br>)(?:[  ]*(?:&#[0-9]+;|[^  <])[  ]*(?:<br>|<>$)){3}
許されるなら(?:は(?>に、*は*+にした方が良いと思う
493489
垢版 |
2026/06/18(木) 22:51:03.50ID:2N0+Im+D
>>492
早速回答していただきどうもありがとうございました
おかげさまで無事に検索(NG)にできるようになりました
非常に困っていたのでとても助かりました
ありがとうございました
2026/06/19(金) 02:35:52.34ID:VhMHdvhg
なるほど
2026/06/19(金) 05:01:50.30ID:FA6Zk3fx
dat(対象データ)の本文部分にマッチとdatの本文部分(対象データ)にマッチじゃ意味が違うだろう
496489
垢版 |
2026/06/19(金) 11:01:20.75ID:mUdQS15D
>>492
度々すみません。
1文字に一致という部分の正規表現はどこが該当しているのでしょうか?
2026/06/21(日) 18:03:34.34ID:vVSezueH
>1文字に一致という部分の正規表現はどこが該当しているのでしょうか?

この質問を正規表現と一緒にしてAIに聞いてみて下さい
AIと正規表現は相性が良いので詳しく教えてくれますよ

また、正規表現の一部をカッコ ( ) で囲うとその部分に
マッチした文字列をキャプチャ出来ます

置換欄に $1 や $2 を使ってキャプチャした文字列を出力させれば
カッコで囲った部分が何にマッチしたのかを自分で確認出来ますよ
2026/06/21(日) 19:37:14.87ID:4vj8o4XC0
次スレはワッチョイ入れたいですね
2026/06/22(月) 22:23:26.94ID:4FApmS+j
いりません
2026/06/23(火) 22:59:01.40ID:ngeiq7Ox
AIがあるのにここで質問する時点で荒らしだからなぁ
答えるときもそう思って答えてるからおk
2026/06/23(火) 23:04:36.38ID:iKI+EeHo
質問者がAIが使える前提でレスしている奴が荒らし
オレからしたらAIに聞けは正規表現本買って勉強して自分で出来るようになれと大差なし
AIに聞けというレスしかできないなら黙っているべき
それが出来ずAIに聞けと回答しちゃう荒らしがいるから、やはり次スレはワッチョイ必須やな
多分、荒らしてるのは一人か二人
2026/06/24(水) 07:42:51.64ID:39ANrsU1
このスレは初心者の質問を禁止にしたほうがいい
質問スレ化してるせいで上級者たちが突っ込んだ議論をすることがほとんど無かった
初歩的な質問なら他でも出来るし今どきの初心者がわざわざここを選ぶことはほとんどない

荒らしはほっとけ
ゴミはゴミのままでいることが罰なんだ
2026/06/24(水) 09:34:44.36ID:ixOg+LVR
上級者たちの突っ込んだ議論とやらは、気にせずにやればいいと思うけど。質問があるので議論できないというロジックはよく分からないな。質問専用スレだと思われているので議論を差し控えてしまう人が居るのではないかということなら、そうではないということを周知すれば良いだけなのでは?
質問と議論とでスレを分けるほど需要があるとは思えないので、両方対応で良いと思うけど。
2026/06/24(水) 11:45:13.10ID:/yjeKUaR
質問から話が発展したり横道にそれたりして盛り上がることもある
まあ質問には回答のみせよという人もいるけど
2026/06/24(水) 12:22:01.52ID:aBYFRqqa
>>502
お前は低級者だから関係なくね
2026/06/24(水) 12:41:18.20ID:aBYFRqqa
>>504
回答のみせよっていう人いた?
見かけたことないけどなぁ

回答した後に講釈垂れるならいいけど
講釈とか説教して終わりな奴しかいなかった記憶
逆に回答する人はオレ含め回答だけで終わらせた記憶しかない

結局質問があると能書き言いたいだけマン(スレが伸びるので実質荒らし)と
回答して無駄にスレを伸ばしたくないマンの二極化している
2026/06/24(水) 12:45:22.55ID:aBYFRqqa
ワッチョイあって困るのは荒らし本人だけで、デメリットがなくメリットしかないのを拒否する理由がない
2026/06/24(水) 12:47:22.67ID:aBYFRqqa
>>502
だいたい質問テンプレすらあるのにお前は何を言っているんだといいたい
お前は二度とこのスレに書き込まないでくれ一生のお願いだ
2026/06/24(水) 13:02:03.87
AIに聞いた結果の正規表現がちゃんと動いた事は殆ど無いな…
2026/06/24(水) 15:36:57.20ID:fADqTBW7
相変わらず正規表現スレには気持ち悪いやつが一人住んでるな
2026/06/24(水) 18:14:35.78ID:vV1GG+0k
次スレと言わず今すぐワッチョイありスレを立てて出て行かないのは何なんだろうな
二度とこっちに来て荒らさないでくれるなら反対しないよ
荒らし本人以外拒否する理由がない
2026/06/24(水) 19:55:51.62ID:aBYFRqqa
>>511
荒らしの君と違ってそんな自己中なことはしない
2026/06/26(金) 20:57:50.36
100文字以上をNGにしたくて、AIに聞いて
.{100,}
にしたのですが駄目でした。
どんな風に書けばいいですか?
2026/06/26(金) 21:51:41.66ID:ODhngzbX
ダメというのはNGされないということか?
もっと少ない文字数なのにNGされるということはあるだろうけどそれでもいけるはず
例えば、アンカー(>>513)のみでも100文字を超えるし
2026/06/26(金) 22:23:09.34
NGされないのです…
2026/06/26(金) 22:25:00.09ID:9xQDERxQ
どのせんぶらかな
2026/06/26(金) 22:30:50.83ID:Ejy8njwP
>>513はいつもの荒らしだと思う
>>500,502あたりと同一自分物かと
518デフォルトの名無しさん
垢版 |
2026/06/26(金) 22:33:41.81ID:i2/bE5gt
>>513のをchmateで試したら、1行で100文字以上の行を含むレスはNGできたけど
レス全体で100文字以上のをNGしたいってことかな
2026/06/26(金) 23:33:52.91
>>518
はい、文章全体です。
2026/06/26(金) 23:34:29.62
>>516
ChMate です。
2026/06/26(金) 23:55:24.47ID:iwqVbWMQ
ワッチョイ有りスレと無しスレの併存は公式に認められた運用だぞ
少しも自己中ではない
2026/06/27(土) 00:05:24.18ID:vTzyZAVY
【衝撃の結果!】最新の研究でAIに相談する人ほど不幸になる事が判明!、っていうようつべ動画のURL貼ろうとしたらマルチポストで拒否されたよ。
AIは人生相談じゃなくて技術的な相談をするためのものだと思う。実際に動かないことが多いというオチも含めて。
2026/06/27(土) 01:33:16.27ID:lB2/F0De
>>521
何かやましい事がある人以外はワッチョイ有りはメリットしかない
よってお前は荒らし確定
524デフォルトの名無しさん
垢版 |
2026/06/27(土) 09:37:48.41ID:q2w3S2dz
>>519
レス全体なら
(\n|.){100,}
ピリオドだけだと「改行以外の任意の1文字」にしか反応しない

あと自分も次スレワッチョイあり賛成に一票
2026/06/27(土) 10:18:00.93ID:mE5HYazz
ここで初心者に正規表現を教えて何の意味があるの?
最近は質問もなくて廃墟化してたよね?

>質問テンプレ
これ前々からいらないと思ってました
これに従って書かれると情報不足の糞質問になる
このテンプレの存在自体が悪
2026/06/27(土) 10:20:51.37ID:lB2/F0De
>>525
初心者質問禁止スレかつ質問テンプレ無しスレでも勝手に立ててそっちで一人でやってろよ
2026/06/27(土) 11:29:04.08ID:mE5HYazz
スレタイをRegular Expressionにしたときも反対する人がいましたね
ちゃんと定着して良かったです
2026/06/27(土) 12:24:19.26
>>524
あれから色々試して
[\s\S]{100,}
で一応巧くいったけど、そっちの方がいいのかな。
2026/06/27(土) 18:24:38.15ID:OCBRgQsa
Windows版grepがUnicode対応したのだし、Windows版pcre2grepもそろそろUnicode対応してもらいたいなあ
2026/06/27(土) 18:27:55.01ID:lB2/F0De
採れたてのウニ丼が食べたい
2026/06/28(日) 02:52:22.52ID:547saAuF
>>524
賛成とかじゃなくてさ、ワッチョイ有りで立てることに荒らし本人以外誰も反対してないだろ?
わざわざ賛成表明するくらいなら代わりに今すぐ立ててやれよ
拒否するなら荒らし本人確定
2026/06/28(日) 02:53:31.17ID:547saAuF
>>528
非効率のお手本のような荒らしの回答に騙されないように気をつけてな
その専ブラのスレにNGまとめたやつがあるから見て来るといい
533デフォルトの名無しさん
垢版 |
2026/06/28(日) 04:54:08.78ID:1PCzRpmU
>>531
このスレまだ半分ぐらい残ってるのに次スレ立てろって?
レスを投稿する


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