Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part15
https://mevius.5ch.net/test/read.cgi/tech/1568640311/
次スレは>>980宜しく
天ぷら等>>2以降
探検
Regular Expression(正規表現) Part16
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2021/11/03(水) 19:50:01.71ID:ebAE+z9+2021/11/03(水) 19:51:06.60ID:ebAE+z9+
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
2021/11/03(水) 19:51:26.32ID:ebAE+z9+
◆関連サイト
正規表現メモ
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
※ サクラエディタでは複数行に渡る検索・置換は出来ません。
正規表現メモ
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
※ サクラエディタでは複数行に渡る検索・置換は出来ません。
2021/11/03(水) 19:54:20.40ID:ebAE+z9+
正規表現技術入門
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/5chan_nel (5ch newer account)
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/5chan_nel (5ch newer account)
2021/11/03(水) 20:59:16.79ID:554LNcID
6デフォルトの名無しさん
2021/11/03(水) 21:43:29.56ID:K+2zXBgv7デフォルトの名無しさん
2021/11/04(木) 11:16:22.06ID:JyTL4wpj nifty の URL 死んでるな
8デフォルトの名無しさん
2021/11/04(木) 11:42:25.33ID:diIHvWke DeNAが個人ブログから正規表現の表丸パクりしてたのワロタ
2021/11/04(木) 11:59:17.47ID:iRkMc3Gk
丸パクリならまだいい
改変もまともにできないのはヤバい
正規表現の例 マッチする例
Coo+el Coopel
https://pbs.twimg.com/media/FC7n-5zaUAETKej.jpg
改変もまともにできないのはヤバい
正規表現の例 マッチする例
Coo+el Coopel
https://pbs.twimg.com/media/FC7n-5zaUAETKej.jpg
2021/11/04(木) 12:31:32.50ID:B00ATyI8
>>9
どゆこと?
どゆこと?
2021/11/04(木) 12:38:22.63ID:Gz31zHb0
12デフォルトの名無しさん
2021/11/04(木) 12:48:06.96ID:diIHvWke 元がgoogleを例にしてたからこうなったのかな
いずれにしてもワロタ
いずれにしてもワロタ
2021/11/04(木) 12:49:09.54ID:iCxb5Ekd
2021/11/04(木) 14:21:26.74ID:B00ATyI8
15デフォルトの名無しさん
2021/11/04(木) 14:53:30.31ID:/D1z+6Mc 劣化コピーだから責められてて
上品だったら叩けない訳か
上品だったら叩けない訳か
2021/11/05(金) 08:20:43.21ID:+Hevqd/d
本歌取りと言う言葉もありますし
2021/11/05(金) 11:40:57.68ID:pLniUbgZ
オマージュ・インスパイア→胡散臭い
本歌取り→凄そう
本歌取り→凄そう
2021/11/05(金) 12:37:40.52ID:1iAtfRIf
本歌取りに良いイメージがあるのは、この行為が和歌の世界で伝統的に許されてきたからだ。
2021/11/06(土) 20:39:20.57ID:oKHbtIv+
祝☆ vim 3o+年
2021/11/06(土) 21:18:49.31ID:G8Zn1Puj
>>19
スレ違い
スレ違い
2021/11/07(日) 00:36:45.12ID:kpV1ZjX8
(/(>>1)/,'$1乙')
2021/11/15(月) 00:01:22.12ID:5vPB6h42
今までに無いかつら、非包含オペレータ
https://bokete.jp/odai/533281
https://bokete.jp/odai/533281
2021/11/15(月) 10:09:56.72ID:xJpmlO5M
vimで文字列処理ってマイナーなのか?
UIでマッチをハイライトしながらパターンを書けるし、書いたパターンと処理はperlやsedのようにコマンドライン引数で渡してシェルスクリプトに組み込める(UI無し、非インタラクティブモード)
vimはバッファするからストリーム処理には向かないくて、パイプにはperlを使うけど、バッチ処理ならvimの方が速い
あと、個人的にアサーションの記法(\@<=等)も、()が深くなりがちなperl系の(?<=等)より好みだ
UIでマッチをハイライトしながらパターンを書けるし、書いたパターンと処理はperlやsedのようにコマンドライン引数で渡してシェルスクリプトに組み込める(UI無し、非インタラクティブモード)
vimはバッファするからストリーム処理には向かないくて、パイプにはperlを使うけど、バッチ処理ならvimの方が速い
あと、個人的にアサーションの記法(\@<=等)も、()が深くなりがちなperl系の(?<=等)より好みだ
2021/11/15(月) 10:57:59.40ID:Y0jbpZIM
惜しむらくは、マッチ後の単純でない処理を委託するvimscriptがクソなところだと思う、regex自体は十分パワフル
perlは任意のロジックをperl式に移譲するのが楽、パターンにも書けるし、大抵インラインで済む
vim9で大幅に言語変えるっぽいけど、どうなるやら
perlは任意のロジックをperl式に移譲するのが楽、パターンにも書けるし、大抵インラインで済む
vim9で大幅に言語変えるっぽいけど、どうなるやら
2021/11/15(月) 11:19:19.50ID:vc2enCPn
()が減るケースって実用的にはあまり無いんじゃないか?アサーションの修飾対象がグループなら、どうせ()が必要になるわけだし
アサーションの\@が後置なのはperl系より一貫性があって良い設計だと思う、?,+,* etcと同列の修飾子とみなせる
アサーションの\@が後置なのはperl系より一貫性があって良い設計だと思う、?,+,* etcと同列の修飾子とみなせる
2021/11/15(月) 21:36:14.28ID:5vPB6h42
非包含オペレータの提案者の方の過去ログ漁ってたらすごいの出てきた
ttp://www.a-k-r.org/pub/2013-06-02-rubyhiroba-akr.pdf
これを使えば2次元の彼女が見つかりそう
ttp://www.a-k-r.org/pub/2013-06-02-rubyhiroba-akr.pdf
これを使えば2次元の彼女が見つかりそう
27デフォルトの名無しさん
2021/11/17(水) 00:30:09.97ID:pGjzwEdG pythonで文字列分割をする時
1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい
re.splitで、思いつく限りやってみましたが、うまく行きませんでした。
[・ー└]|( ){3,}
[・ー└( ){3,}]
[・ー└(( ){3,})]
試しにre.sub(〜, "", ・・・)で文字列が削除出来るかどうか試したときは半角スペース3つが消えました。
いくつかの文字 もしくは 特定の文字の繰り返し、で文字列を分解する書き方はありますでしょうか
1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい
re.splitで、思いつく限りやってみましたが、うまく行きませんでした。
[・ー└]|( ){3,}
[・ー└( ){3,}]
[・ー└(( ){3,})]
試しにre.sub(〜, "", ・・・)で文字列が削除出来るかどうか試したときは半角スペース3つが消えました。
いくつかの文字 もしくは 特定の文字の繰り返し、で文字列を分解する書き方はありますでしょうか
28デフォルトの名無しさん
2021/11/17(水) 00:32:30.60ID:pGjzwEdG 上記で、分かりにくくてすみません、
>1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい
この「1:」は気にしないでください。
また、re.subで上手く行ったのは、1つめに書いた [・ー└]|( ){3,} です
>1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい
この「1:」は気にしないでください。
また、re.subで上手く行ったのは、1つめに書いた [・ー└]|( ){3,} です
2021/11/17(水) 01:31:56.09ID:vtK5EVRE
[・ー└]|( ){3,} → 合ってる
[・ー└( ){3,}] → 間違い
[・ー└(( ){3,})] → 間違い
文字コードが uft-8 以外で書かれている文書を扱ってるとか?
そうなら python 文字コード でググって文書を uft-8 に変換してから split
[・ー└( ){3,}] → 間違い
[・ー└(( ){3,})] → 間違い
文字コードが uft-8 以外で書かれている文書を扱ってるとか?
そうなら python 文字コード でググって文書を uft-8 に変換してから split
2021/11/17(水) 02:52:26.84ID:CiQU0O+7
( → (?:
2021/11/17(水) 04:06:28.28ID:PbEjqT95
>>29
そもそも単文字なんだしグループにする必要なくね?
そもそも単文字なんだしグループにする必要なくね?
2021/11/17(水) 09:04:44.07ID:GPq3lXDW
2021/11/17(水) 10:12:43.95ID:A6BSd3Zu
正規表現に生の半角スペース使うのは一見気づきにくくて余り好きじゃないなぁ
\x20 にしない人多いのかな
\x20 にしない人多いのかな
2021/11/17(水) 10:36:58.04ID:6wJ0temu
俺は生派
\sを使う人もいるけど俺は嫌
\sを使う人もいるけど俺は嫌
2021/11/17(水) 10:39:17.25ID:GPq3lXDW
エディタの設定で可視化もできるしね。>半角スペース
2021/11/17(水) 10:39:47.05ID:6wJ0temu
this is a pen
を
this\x20is\x20a\x20pen
とかも嫌
を
this\x20is\x20a\x20pen
とかも嫌
2021/11/17(水) 10:56:31.05ID:A6BSd3Zu
文章になってるものまで生で使わないと言うわけじゃないけどな
ブラケットの中で使う場合なんかは生は避けたいわ
[ ]とかよく見かけるけど、分かりづらい
なお、\sは半角スペースを含むけどそれ自体じゃないので普通は区別して使うでしょ
ブラケットの中で使う場合なんかは生は避けたいわ
[ ]とかよく見かけるけど、分かりづらい
なお、\sは半角スペースを含むけどそれ自体じゃないので普通は区別して使うでしょ
3829
2021/11/17(水) 11:01:36.46ID:vtK5EVRE this[ ]is[ ]a[ ]pen
proxomitronのフィルタ職人をやってるときはこうやってた
今だと this\ is\ a\ pen かな? 使ったことないけどw
\s は環境によっては全角スぺにマッチするから気を付けないとね
proxomitronのフィルタ職人をやってるときはこうやってた
今だと this\ is\ a\ pen かな? 使ったことないけどw
\s は環境によっては全角スぺにマッチするから気を付けないとね
2021/11/17(水) 11:32:27.19ID:6wJ0temu
2021/11/17(水) 20:33:29.63ID:vtK5EVRE
Jane用の正規表現を掲示板に貼るときにはタブ文字のところを 【tab】 って
書き換えて貼ってたなぁ、しかしJane自体が廃れて使うことが無くなった
書き換えて貼ってたなぁ、しかしJane自体が廃れて使うことが無くなった
4127
2021/11/17(水) 23:51:26.36ID:pGjzwEdG 27です
こんなにも早く教えてくださってとても助かりました!
()が要らなかったんですね。勉強になります!
ありがとうございました!
こんなにも早く教えてくださってとても助かりました!
()が要らなかったんですね。勉強になります!
ありがとうございました!
4229
2021/11/19(金) 20:58:09.22ID:rZqXBgxj これの検証してみた
Absence operator is broken #150
https://github.com/k-takata/Onigmo/issues/150
・検証コード (ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32])
p /(?~a.*[bv].*c)/.match("000a111v222c333b444c555")
・結果
#<MatchData "000a111v222c333b444">
a〜v〜c を含んでしまってるのでバグで確定
原因は最初にマッチした段階で検索を打ち切ってしまっていて
別のパターンを見逃している
別のパターンを見つける必要があることは非包含オペレータ提案者さんの論文で
図付きで説明されてるけどこれを見落としてしまったオチ?
直すには論文通りに実装すれば良いだけなので直せないことは無さそう
自分がプログラミング出来れば直したいけどミジンコなので手も足も出ず..
-------------------------------------------------------
>>41 おつー
Absence operator is broken #150
https://github.com/k-takata/Onigmo/issues/150
・検証コード (ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32])
p /(?~a.*[bv].*c)/.match("000a111v222c333b444c555")
・結果
#<MatchData "000a111v222c333b444">
a〜v〜c を含んでしまってるのでバグで確定
原因は最初にマッチした段階で検索を打ち切ってしまっていて
別のパターンを見逃している
別のパターンを見つける必要があることは非包含オペレータ提案者さんの論文で
図付きで説明されてるけどこれを見落としてしまったオチ?
直すには論文通りに実装すれば良いだけなので直せないことは無さそう
自分がプログラミング出来れば直したいけどミジンコなので手も足も出ず..
-------------------------------------------------------
>>41 おつー
4329
2021/11/19(金) 23:35:42.78ID:rZqXBgxj ついでにもう1つだけ
Use of \K when the string to match after \K can be empty #152
https://github.com/k-takata/Onigmo/issues/152
これは \K を使ってゼロ幅マッチになった場合に次の検索開始位置が
予期せず1つ進んでしまう問題のようだ
gsubの仕様かなと思ったけど (?<=\w) と \w\K の2つが違う結果になるのは
違和感ある、\K での ゼロ幅マッチ後の pos を進まないようにすれば直りそう
takata先生の代わりにちゃちゃっと始末してくれるスーパーハカーさん募集
Use of \K when the string to match after \K can be empty #152
https://github.com/k-takata/Onigmo/issues/152
これは \K を使ってゼロ幅マッチになった場合に次の検索開始位置が
予期せず1つ進んでしまう問題のようだ
gsubの仕様かなと思ったけど (?<=\w) と \w\K の2つが違う結果になるのは
違和感ある、\K での ゼロ幅マッチ後の pos を進まないようにすれば直りそう
takata先生の代わりにちゃちゃっと始末してくれるスーパーハカーさん募集
4429
2021/11/20(土) 00:06:32.69ID:dCkHZW0G \K より前で文字を消費していない場合は pos は進まないようだ
/\K/ → pos進まず
/.\K/ → 予期せずpos進んでしまう
/\K/ → pos進まず
/.\K/ → 予期せずpos進んでしまう
2021/11/20(土) 13:49:08.95ID:S4adbGs3
>>42
イシュー150の起票者がオリジナルの鬼車作者さんやんけw
イシュー150の起票者がオリジナルの鬼車作者さんやんけw
4629
2021/11/20(土) 14:09:45.26ID:dCkHZW0G >>45 そうなんだよね、だから気になってた
-------------------------------------------------
>>42 とは別の検証をしてみた
p /(?~a.*b.*c|222)/.match("000a111b222c333")
#<MatchData "000a111b22">
これは期待通りにマッチした、これが正しく動くということは
論文の読み落としではないね、失礼しました
問題は同一posでマッチ文字数が最短になるマッチを見つけなければいけないが
それをしていないことみたいだ
この処理って結構な処理量になりそうだけど大丈夫なのかな?
オペレータ提案者さんのサンプルコードではどうなってるんだろ?
プログラムが読めないから対応出来てるのか分からない..
あまりに重いようなら量指定子を使えるようにしたほうが良いかもしれない
.* を .{0,1000} に書き換えて処理量を限定させるのと同じで
(?~abc){0,1000} みたいな指定が出来るようにすれば..
-------------------------------------------------
>>42 とは別の検証をしてみた
p /(?~a.*b.*c|222)/.match("000a111b222c333")
#<MatchData "000a111b22">
これは期待通りにマッチした、これが正しく動くということは
論文の読み落としではないね、失礼しました
問題は同一posでマッチ文字数が最短になるマッチを見つけなければいけないが
それをしていないことみたいだ
この処理って結構な処理量になりそうだけど大丈夫なのかな?
オペレータ提案者さんのサンプルコードではどうなってるんだろ?
プログラムが読めないから対応出来てるのか分からない..
あまりに重いようなら量指定子を使えるようにしたほうが良いかもしれない
.* を .{0,1000} に書き換えて処理量を限定させるのと同じで
(?~abc){0,1000} みたいな指定が出来るようにすれば..
4729
2021/11/25(木) 18:40:51.33ID:QsU6pq8j Onigmo のバグの原因となった個所が判明したので書いておこう
正規表現における非包含オペレータの提案
ttps://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-paper.pdf
この論文のサンプルコードに下記のメソッドがある
def try_alt(r1, r2, str, pos, &block)
try(r1, str, pos, &block)
try(r2, str, pos, &block)
end
これは正規表現で言うと r1|r2 の "|" にあたる動作をする部分のメソッドだが
このサンプルコードでは r1 のマッチが成功した後でも必ず r2 を試す仕様になっている
しかし Onigmo の検索方式では r1 がマッチした後に正規表現の最後までマッチが
成立した場合には r2 が試されない仕様になっている
これにより r2 を通る一部パターンが見落とされる結果となりバグとして出現した
論文中の非包含オペレータのメソッドである def try_absent(r, str, pos) は
上記の def try_alt を使う前提で書かれたものなのでこれをそのまま Onigmo には移植出来ない
サンプルコード方式での処理量を考えるとおそらくこれとはまったく別のアルゴリズムで動く
動作の軽いメソッドを自作しないと Onigmo には導入出来ないのではないだろうか..
正規表現における非包含オペレータの提案
ttps://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-paper.pdf
この論文のサンプルコードに下記のメソッドがある
def try_alt(r1, r2, str, pos, &block)
try(r1, str, pos, &block)
try(r2, str, pos, &block)
end
これは正規表現で言うと r1|r2 の "|" にあたる動作をする部分のメソッドだが
このサンプルコードでは r1 のマッチが成功した後でも必ず r2 を試す仕様になっている
しかし Onigmo の検索方式では r1 がマッチした後に正規表現の最後までマッチが
成立した場合には r2 が試されない仕様になっている
これにより r2 を通る一部パターンが見落とされる結果となりバグとして出現した
論文中の非包含オペレータのメソッドである def try_absent(r, str, pos) は
上記の def try_alt を使う前提で書かれたものなのでこれをそのまま Onigmo には移植出来ない
サンプルコード方式での処理量を考えるとおそらくこれとはまったく別のアルゴリズムで動く
動作の軽いメソッドを自作しないと Onigmo には導入出来ないのではないだろうか..
4829
2021/11/25(木) 19:06:15.35ID:QsU6pq8j 論文3ページ目の右半分に 表3 がある
r1r2 | [:seq, r1, r2]
ここの :seq は r1 と r2 を連接するという意味で使われているが
サンプルコードでは :seq を使わず :cat になっている
ここで疑問なのが何故違う名前を使うことになったのか? である
(仮説1) 非包含オペレータ提案者さんは猫が好き
ごろにゃんしながらバックトラックにゃん である
(仮説2) cat は Unix でよく使われる連結コマンドであり catenate から由来する
これもなかなかの難問である
r1r2 | [:seq, r1, r2]
ここの :seq は r1 と r2 を連接するという意味で使われているが
サンプルコードでは :seq を使わず :cat になっている
ここで疑問なのが何故違う名前を使うことになったのか? である
(仮説1) 非包含オペレータ提案者さんは猫が好き
ごろにゃんしながらバックトラックにゃん である
(仮説2) cat は Unix でよく使われる連結コマンドであり catenate から由来する
これもなかなかの難問である
49デフォルトの名無しさん
2021/11/29(月) 20:58:37.88ID:ZJywLyaD ある短い英単語が文章に含まれているかどうかを判定したいのですが、
他の英単語の一部に含まれているようなときは除外したいです。
例:検索単語:ap、
○:ap is short of...
○:これはapです
NG:pen pineapple apple pen
つまり、『単語の前後に文字がある場合は、それらがアルファベットでない』という条件を加えたいのですが、
これの実現方法に詰まっています。
[^a-zA-Z]ap[^a-zA-Z]
の至るところに、.*や*や+を様々なパターン試したのですがうまく行かず。。。
うまく行ったと思っても、指定単語が文頭や文末に来て、前後のどちらかに文字がないときはうまく行きません。
どなたかご教授頂けませんでしょうか。
他の英単語の一部に含まれているようなときは除外したいです。
例:検索単語:ap、
○:ap is short of...
○:これはapです
NG:pen pineapple apple pen
つまり、『単語の前後に文字がある場合は、それらがアルファベットでない』という条件を加えたいのですが、
これの実現方法に詰まっています。
[^a-zA-Z]ap[^a-zA-Z]
の至るところに、.*や*や+を様々なパターン試したのですがうまく行かず。。。
うまく行ったと思っても、指定単語が文頭や文末に来て、前後のどちらかに文字がないときはうまく行きません。
どなたかご教授頂けませんでしょうか。
2021/11/29(月) 21:09:24.49ID:be+dUloq
51デフォルトの名無しさん
2021/11/29(月) 21:22:37.81ID:ZJywLyaD こんなに早く教えていただいてありがとうございます。
試してみたのですが、うまく行きませんでした。検証方法間違ってますでしょうか?
----------------
value="abc ap abc"
pattern = "(?<![a-zA-Z])ap(?![a-zA-Z])"
re.match(pattern, value)
※何も取得できず
----------------
試してみたのですが、うまく行きませんでした。検証方法間違ってますでしょうか?
----------------
value="abc ap abc"
pattern = "(?<![a-zA-Z])ap(?![a-zA-Z])"
re.match(pattern, value)
※何も取得できず
----------------
2021/11/29(月) 21:35:41.08ID:7mT4ej7+
re.matchじゃなくてre.search
matchは先頭位置からしかマッチするか調べない
matchは先頭位置からしかマッチするか調べない
2021/11/29(月) 21:41:33.24ID:be+dUloq
ところで
ap'sとかap-dataとかもろもろの扱いはいいのか?
ap'sとかap-dataとかもろもろの扱いはいいのか?
54デフォルトの名無しさん
2021/11/29(月) 22:02:03.30ID:ZJywLyaD5529
2021/12/06(月) 21:53:22.08ID:S5ugmQVz rubyのコードが読めたから調子に乗って鬼車のソースからのインストールと
simple.c の実行に挑戦してみたら成功するまで10日くらいかかった
win10 パソコンで VMware を動かして中に ubuntu 20.04 を入れて
oniguruma 6.9.7 をインストした
あとは C言語で書かれたサンプルコードを解析すれば oniguruma の
色々なオプションを試せるようになる..
Unix も C言語 も知らないしプログラマでもないミジンコだけどググりまくれば
意外と何とかなりそうだ、次は Onigmo を入れよう..
simple.c の実行に挑戦してみたら成功するまで10日くらいかかった
win10 パソコンで VMware を動かして中に ubuntu 20.04 を入れて
oniguruma 6.9.7 をインストした
あとは C言語で書かれたサンプルコードを解析すれば oniguruma の
色々なオプションを試せるようになる..
Unix も C言語 も知らないしプログラマでもないミジンコだけどググりまくれば
意外と何とかなりそうだ、次は Onigmo を入れよう..
5629
2021/12/07(火) 02:27:56.29ID:gbEOg3vj Onigmo もインスト出来たけど simple.c の実行結果がおかしい
// oniguruma の場合
match at 4
0: (4-14)
1: (5-13)
// Onigmo の場合
match at 4
0: (21474836484-55834574862)
1: (0-0)
インスト失敗か?
README_japanese に書いてある "onig-config --cflags" での構成確認は
oniguruma と Onigmo で同じコマンドだけど共通のコマンドなのかな?
両方入れたからどっちの構成を確認してるのか分からない
// oniguruma の場合
match at 4
0: (4-14)
1: (5-13)
// Onigmo の場合
match at 4
0: (21474836484-55834574862)
1: (0-0)
インスト失敗か?
README_japanese に書いてある "onig-config --cflags" での構成確認は
oniguruma と Onigmo で同じコマンドだけど共通のコマンドなのかな?
両方入れたからどっちの構成を確認してるのか分からない
5729
2021/12/07(火) 04:28:00.86ID:gbEOg3vj ↑の構成確認の件はOnigmo の README.ja の 111 〜 114 行目 が
oniguruma の説明のままなだけだった、takata先生更新を..
.ja が付いてない英語版も同様です
github の Onigmo のトップページでは正しく
"onigmo-config --cflags" と書いてありました
oniguruma の説明のままなだけだった、takata先生更新を..
.ja が付いてない英語版も同様です
github の Onigmo のトップページでは正しく
"onigmo-config --cflags" と書いてありました
5829
2021/12/07(火) 15:13:24.06ID:gbEOg3vj ↑ の件ですが README.ja の 61 行目の
> 以下、鬼車の README.ja:
を見落としておりました、鬼車の説明書きのコピペだったのね..orz
>>56 の Onigmo の結果がおかしかったのも↓で正常動作しました
間違い: cc sample.c -L/usr/local/lib -lonig
正しい: cc sample.c -L/usr/local/lib -lonigmo
お騒がせして申し訳ありません m(__)m
> 以下、鬼車の README.ja:
を見落としておりました、鬼車の説明書きのコピペだったのね..orz
>>56 の Onigmo の結果がおかしかったのも↓で正常動作しました
間違い: cc sample.c -L/usr/local/lib -lonig
正しい: cc sample.c -L/usr/local/lib -lonigmo
お騒がせして申し訳ありません m(__)m
5929
2021/12/14(火) 23:52:24.48ID:hRBVXs3o perl5と鬼車、鬼雲の動作を比べて遊んでたらperl5の変な挙動を発見
\d{1} の {1} を付けるか消すかで結果が変わる
---------------------------
my $str = '12';
$str =~ s/(?<name>\d{1}){0}(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
↓{0} での定義を (?(DEFINE) ... ) に変えると正常動作する
---------------------------
my $str = '12';
$str =~ s/(?(DEFINE)(?<name>\d{1}))(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread
\d{1} の {1} を付けるか消すかで結果が変わる
---------------------------
my $str = '12';
$str =~ s/(?<name>\d{1}){0}(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
↓{0} での定義を (?(DEFINE) ... ) に変えると正常動作する
---------------------------
my $str = '12';
$str =~ s/(?(DEFINE)(?<name>\d{1}))(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread
6029
2021/12/15(水) 05:01:54.34ID:+lf8SrwJ ・ {0} での定義ではマッチせず
---------------------------
my $str = '123';
$str =~ s/(?<name>123){0}(?&name)/<match=$&>/;
print "$str\r\n";
・DEFINEを使うと正常動作する
---------------------------
my $str = '123';
$str =~ s/(?(DEFINE)(?<name>123))(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
perl5 では {0} で定義するのは想定外?
---------------------------
my $str = '123';
$str =~ s/(?<name>123){0}(?&name)/<match=$&>/;
print "$str\r\n";
・DEFINEを使うと正常動作する
---------------------------
my $str = '123';
$str =~ s/(?(DEFINE)(?<name>123))(?&name)/<match=$&>/;
print "$str\r\n";
---------------------------
perl5 では {0} で定義するのは想定外?
6129
2021/12/16(木) 22:14:43.92ID:0VSoy2O4 onigurumaの非包含オペレータの動作が論文と違う
正規表現 ^(?~abc) をテキスト 0123abcd に対して検索して比較すると..
論文の動作 : 0123ab がマッチする
onigurumaの動作 : 0123 がマッチする
逆に Onigmo は分岐が含まれない正規表現なら論文通りに動作するので
この場合は論文と同じ動作をする
動作的には ((?!abc).)* と同じなので論文で指摘されているように
形式言語理論から逸脱しているし、後ろに続く正規表現によっては
マッチ出来ずに検索が終わってしまうケースが発生する 例、 ^(?~abc)c
非包含オペレータは提案から14年経ってもなお未完のままということに..
正規表現 ^(?~abc) をテキスト 0123abcd に対して検索して比較すると..
論文の動作 : 0123ab がマッチする
onigurumaの動作 : 0123 がマッチする
逆に Onigmo は分岐が含まれない正規表現なら論文通りに動作するので
この場合は論文と同じ動作をする
動作的には ((?!abc).)* と同じなので論文で指摘されているように
形式言語理論から逸脱しているし、後ろに続く正規表現によっては
マッチ出来ずに検索が終わってしまうケースが発生する 例、 ^(?~abc)c
非包含オペレータは提案から14年経ってもなお未完のままということに..
2021/12/17(金) 13:32:58.43ID:N/8v4GiQ
>>61
^(?~(?<=ab)c)
^(?~(?<=ab)c)
2021/12/17(金) 15:12:28.90ID:wvP9ttxM
記号が同じなだけで名称も説明上の動作も違うからそもそも似て非なる別物
ではなくて?
ではなくて?
6429
2021/12/17(金) 19:59:50.60ID:t+q3CK3B >>62 それ反則w ちなみにこんなのもある
Perl正規表現雑技 : ある文字列を含まないものにマッチする正規表現
http://www.din.or.jp/~ohzaki/regex.htm#Without
>>63 その解釈で間違ってないと思う、oniguruma の (?~abc) は仕様が
決まった時点で別物だね、(?:(?!abc).)* の拡張版と言ったほうがしっくりくる
実用上は oniguruma 版のほうが使いやすそうだしあえて変えたんだろうね
Perl正規表現雑技 : ある文字列を含まないものにマッチする正規表現
http://www.din.or.jp/~ohzaki/regex.htm#Without
>>63 その解釈で間違ってないと思う、oniguruma の (?~abc) は仕様が
決まった時点で別物だね、(?:(?!abc).)* の拡張版と言ったほうがしっくりくる
実用上は oniguruma 版のほうが使いやすそうだしあえて変えたんだろうね
2021/12/17(金) 20:49:06.88ID:BDVQn7Pa
いやぁ、、ヒネくれちゃっただけでしょ
2021/12/19(日) 06:09:19.30ID:X6k+U6Sv
成果だけ横から頂いてこっちで改変流用するわwおまえ除名なwとか言われちゃったらまあ拗ねもするさ
2021/12/19(日) 08:57:20.74ID:hMGijQ8S
(?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ)))
これが効かないんすけど何か間違えてますか?
https://egg.5ch.net/test/read.cgi/android/1638738146/
これが効かないんすけど何か間違えてますか?
https://egg.5ch.net/test/read.cgi/android/1638738146/
2021/12/19(日) 10:54:25.85ID:mCvaVjB9
少なくともchmateだとマッチしてる
正規表現と文字列の切り替えの設定間違えてるんじゃないの
正規表現と文字列の切り替えの設定間違えてるんじゃないの
2021/12/20(月) 20:18:42.66ID:k8SAGnLj
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv4アドレスに一致させたい
●対象データ
2021.12.19.06
192.168.1.1
●希望する結果
192.168.1.1
下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。
/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv4アドレスに一致させたい
●対象データ
2021.12.19.06
192.168.1.1
●希望する結果
192.168.1.1
下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。
/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k
7069
2021/12/20(月) 20:22:55.66ID:k8SAGnLj すみません
対象データの訂正です
最初と最後に文字列があります
●対象データ
AB2021.12.19.06E
CD192.168.1.1E
対象データの訂正です
最初と最後に文字列があります
●対象データ
AB2021.12.19.06E
CD192.168.1.1E
2021/12/20(月) 20:25:28.02ID:cLNhpahP
2021/12/20(月) 20:55:56.04ID:k8SAGnLj
度々すみません
訂正があったので再度質問させてください
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv4アドレスに一致させたい
条件
前後に何も含まない場合
前後に[]を含む場合
前後に半角を含む場合
●対象データ
A2021.12.19.06B
B192.168.1.01B
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
●希望する結果
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。
/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k
よろしくお願いします
訂正があったので再度質問させてください
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv4アドレスに一致させたい
条件
前後に何も含まない場合
前後に[]を含む場合
前後に半角を含む場合
●対象データ
A2021.12.19.06B
B192.168.1.01B
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
●希望する結果
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。
/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k
よろしくお願いします
7372
2021/12/20(月) 21:00:55.82ID:k8SAGnLj 希望する結果では[]や半角を含まずIP部分だけ一致させたいです
よろしくお願いします
よろしくお願いします
2021/12/20(月) 21:13:35.36ID:cLNhpahP
(?<![.0-9])(IPv4の正規表現ggrks)(?![.0-9])
7572
2021/12/20(月) 21:27:00.64ID:k8SAGnLj >>74
ありがとうございます
それだとIPv4アドレスではない部分に一致してしまいダメ
(?<![.0-9])([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![.0-9])
ありがとうございます
それだとIPv4アドレスではない部分に一致してしまいダメ
(?<![.0-9])([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![.0-9])
7672
2021/12/20(月) 21:31:02.39ID:k8SAGnLj >>74
こういった結果を希望しています
よろしくお願いします
●対象データ
A2021.12.19.06B
B192.168.1.01B
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
●希望する結果
一致しない
一致しない ←.01という表記が正しくない為
192.168.1.1 ←一致
192.168.1.1 ←[]の中を一致
192.168.1.1 ←前後の半角を除いて一致
こういった結果を希望しています
よろしくお願いします
●対象データ
A2021.12.19.06B
B192.168.1.01B
192.168.1.1
[192.168.1.1]
_192.168.1.1_ ←_は半角空白
●希望する結果
一致しない
一致しない ←.01という表記が正しくない為
192.168.1.1 ←一致
192.168.1.1 ←[]の中を一致
192.168.1.1 ←前後の半角を除いて一致
2021/12/20(月) 21:50:00.81ID:k8/KZn4u
[192.168.1.1_
7872
2021/12/20(月) 22:36:54.07ID:azxFC8Fx >>74
下の通りにしたら出来ました
ありがとうございました
/(?<![.0-9])(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))(?![.0-9])/k
下の通りにしたら出来ました
ありがとうございました
/(?<![.0-9])(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))(?![.0-9])/k
2021/12/21(火) 05:04:20.96ID:DlXpRfUq
(?<![.\d])(?:(2(?:5[0-5]|[0-4]\d)|1\d\d|[1-9]?\d)\.){3}\g'1'(?![.\d])
2021/12/21(火) 12:48:39.34ID:YqPiCVQe
(?<![.\d])(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.\g'1'){3}(?![.\d])
8372
2021/12/21(火) 13:04:04.34ID:bLPLuUHJ ちなみに>>79さんや>>81さんの正規表現だと
こういった正規表現チェッカーでは一致しないのは何故なんでしょうか?
https://www.debuggex.com/
JavaScriptと表示されているリストをPythonに指定して試しました
こういった正規表現チェッカーでは一致しないのは何故なんでしょうか?
https://www.debuggex.com/
JavaScriptと表示されているリストをPythonに指定して試しました
2021/12/21(火) 16:35:44.32ID:fKMzp4yd
後方参照の記法絡みかなあ
2021/12/21(火) 16:46:05.57ID:ehDQ8UlO
¥をつかうか、$を使うかは、なかなか思い出せないから困る
2021/12/21(火) 18:31:43.92ID:2Q9XRXAv
>>79 >>81
サクラエディタ(というか鬼車や鬼雲、bregonig.dllの正規表現)
の\dは全角数字にもマッチするから
[0-9]で検索すべき
全角が含まれてしまう話は\s,\wなども同様
サクラエディタBBSでの高田先生の過去発言
https://sakura-editor.github.io/bbslog/sf/ansi/4874.html#4887
サクラエディタ(というか鬼車や鬼雲、bregonig.dllの正規表現)
の\dは全角数字にもマッチするから
[0-9]で検索すべき
全角が含まれてしまう話は\s,\wなども同様
サクラエディタBBSでの高田先生の過去発言
https://sakura-editor.github.io/bbslog/sf/ansi/4874.html#4887
2021/12/21(火) 19:19:25.77ID:N0HCE/E4
左端に(?a)をつければ\dのままでも?
2021/12/21(火) 19:35:57.99ID:aQSGSn8P
Meryの\dは半角のみ
正規表現まわり含め検索はサクラよりMeryのが良いな
サクラは複数行検索不可だし
正規表現まわり含め検索はサクラよりMeryのが良いな
サクラは複数行検索不可だし
2021/12/21(火) 20:39:47.81ID:wzddSm6Q
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv6アドレスに一致させたい
条件
●対象データ
2603:1096:0604:00bc:0000:0000:0000:0009
(2603:1096:0604:00bc:0000:0000:0000:0009) ←半角括弧の中だけに一致させたい
_2603:1096:0604:00bc:0000:0000:0000:0009_ ←_は半角スペースの中だけに一致させたい
2603:1096:604:bc::9
(2603:1096:604:bc::9)
_2603:1096:604:bc::9_
●希望する結果
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:604:bc::9
2603:1096:604:bc::9
2603:1096:604:bc::9
○試した正規表現
下の正規表現だと最後の:以降(上の例だと最後の9)が一致しませんでした
(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?
よろしくお願いします
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
IPv6アドレスに一致させたい
条件
●対象データ
2603:1096:0604:00bc:0000:0000:0000:0009
(2603:1096:0604:00bc:0000:0000:0000:0009) ←半角括弧の中だけに一致させたい
_2603:1096:0604:00bc:0000:0000:0000:0009_ ←_は半角スペースの中だけに一致させたい
2603:1096:604:bc::9
(2603:1096:604:bc::9)
_2603:1096:604:bc::9_
●希望する結果
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:604:bc::9
2603:1096:604:bc::9
2603:1096:604:bc::9
○試した正規表現
下の正規表現だと最後の:以降(上の例だと最後の9)が一致しませんでした
(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?
よろしくお願いします
2021/12/21(火) 23:04:26.56ID:lAwv+hLw
2021/12/22(水) 00:48:17.09ID:zQqayV78
正直\dを[0-9]以外にもマッチさせる仕様ってどういう時に便利なのか今一つ分からん
2021/12/22(水) 03:24:15.78ID:dkzRMG/Q
[0-469bc:]++
2021/12/22(水) 09:44:58.18ID:dK2CjfaN
住所にしろ日付にしろ上から順に書いた方が齟齬が生じないだろうに
西洋文化圏のやつらは何が何でも省略しなきゃ気が済まないんだろうな
こんなもん略記許さない仕様の方が逆に全体的な効率は良いだろうに
フロッピーディスクの時代なら少しでも容量減らしたいのは分からなくも無いけど
西洋文化圏のやつらは何が何でも省略しなきゃ気が済まないんだろうな
こんなもん略記許さない仕様の方が逆に全体的な効率は良いだろうに
フロッピーディスクの時代なら少しでも容量減らしたいのは分からなくも無いけど
9691
2021/12/22(水) 10:25:10.40ID:giUFecUL >>94
ありがとうございます
IPv6アドレス以外には一致させたくないのです
●対象データ
1
01
2603:1096:0604:00bc:0000:0000:0000:0009
(2603:1096:0604:00bc:0000:0000:0000:0009) ←半角括弧の中だけに一致させたい
_2603:1096:0604:00bc:0000:0000:0000:0009_ ←_は半角スペースの中だけに一致させたい
2603:1096:604:bc::9
(2603:1096:604:bc::9)
_2603:1096:604:bc::9_
●希望する結果
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:604:bc::9
2603:1096:604:bc::9
2603:1096:604:bc::9
ありがとうございます
IPv6アドレス以外には一致させたくないのです
●対象データ
1
01
2603:1096:0604:00bc:0000:0000:0000:0009
(2603:1096:0604:00bc:0000:0000:0000:0009) ←半角括弧の中だけに一致させたい
_2603:1096:0604:00bc:0000:0000:0000:0009_ ←_は半角スペースの中だけに一致させたい
2603:1096:604:bc::9
(2603:1096:604:bc::9)
_2603:1096:604:bc::9_
●希望する結果
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:0604:00bc:0000:0000:0000:0009
2603:1096:604:bc::9
2603:1096:604:bc::9
2603:1096:604:bc::9
97デフォルトの名無しさん
2021/12/22(水) 11:10:46.72ID:j6Uulo2p2021/12/22(水) 11:53:44.33ID:dK2CjfaN
9991
2021/12/22(水) 12:01:15.82ID:giUFecUL100デフォルトの名無しさん
2021/12/22(水) 16:45:06.37ID:rmiXIWtW IP アドレスの正規表現ぐらい、公式が発表しているのでは?
101デフォルトの名無しさん
2021/12/22(水) 17:23:12.37ID:Q/8wGtmi102デフォルトの名無しさん
2021/12/22(水) 17:29:20.12ID:SKIY34Ty IPv6を正確に捕捉するのは難しいだろ
2001:db8:0:0:1::1は×で、2001:db8::1:0:0:1が正しい
::ffff:c000:0280 = ::ffff:192.0.2.128
2001:db8:a::123/64
fe80::3%1
2001:db8:0:0:1::1は×で、2001:db8::1:0:0:1が正しい
::ffff:c000:0280 = ::ffff:192.0.2.128
2001:db8:a::123/64
fe80::3%1
104デフォルトの名無しさん
2021/12/22(水) 17:41:16.95ID:Q/8wGtmi >>103
そのパターン限定なら{8,}を{15,}とかで回避できる
そのパターン限定なら{8,}を{15,}とかで回避できる
10591
2021/12/22(水) 17:52:56.27ID:giUFecUL >>104
ありがとうございます
{9,}にしたら出来ました!
ちなみにこういうものに一致しないようにする方法はありますか?
:2603:1096:604:bc::9 ←先頭に:がある
こういう出現はないはずなんですが、もし簡単な正規表現の追加で出来たら嬉しいなあと
ありがとうございます
{9,}にしたら出来ました!
ちなみにこういうものに一致しないようにする方法はありますか?
:2603:1096:604:bc::9 ←先頭に:がある
こういう出現はないはずなんですが、もし簡単な正規表現の追加で出来たら嬉しいなあと
107デフォルトの名無しさん
2021/12/22(水) 18:06:08.63ID:Q/8wGtmi これでどう?
ただし頭:への対応は無理
([0-9a-f:]+:){4,}[0-9a-f]+
ただし頭:への対応は無理
([0-9a-f:]+:){4,}[0-9a-f]+
10891
2021/12/22(水) 18:17:32.37ID:giUFecUL >>107
度々ありがとうございます
それでも数字や英字の連続に一致してしまいダメでした
08d9c24701be
合ってるか分からないのですが、今のところ>>91の正規表現の末尾に[0-9]*を加えています・・・
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))[0-9]*
度々ありがとうございます
それでも数字や英字の連続に一致してしまいダメでした
08d9c24701be
合ってるか分からないのですが、今のところ>>91の正規表現の末尾に[0-9]*を加えています・・・
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))[0-9]*
109デフォルトの名無しさん
2021/12/22(水) 18:29:09.14ID:G1M4O4Y+ >>108
ところどころfe80とかffffみたいにベタ書きしてるのはなぜ?
ところどころfe80とかffffみたいにベタ書きしてるのはなぜ?
110デフォルトの名無しさん
2021/12/22(水) 21:01:48.91ID:++/G/dKU111デフォルトの名無しさん
2021/12/23(木) 03:07:53.75ID:0XYH//o1 (?<!\h)(IPv6の正規表現ググレカス)(?!\h)
112デフォルトの名無しさん
2021/12/23(木) 09:13:03.87ID:fgU7IqZ3113デフォルトの名無しさん
2021/12/23(木) 09:14:21.91ID:fgU7IqZ3 >>108
ちなみにipv6の正規表現で検索して色々出てきたけど、下のやつから頭とお尻の(^$)とるとマッチするんだが、改行が含まれてしまう。
他は>>96がイレギュラーすぎてマッチしないのが多い。
http://tech-uh-oh.blogspot.com/2010/02/ipv6.html
ちなみにipv6の正規表現で検索して色々出てきたけど、下のやつから頭とお尻の(^$)とるとマッチするんだが、改行が含まれてしまう。
他は>>96がイレギュラーすぎてマッチしないのが多い。
http://tech-uh-oh.blogspot.com/2010/02/ipv6.html
11491
2021/12/23(木) 12:05:51.36ID:czwrZ62f116デフォルトの名無しさん
2021/12/23(木) 12:30:01.85ID:fgU7IqZ311791
2021/12/23(木) 12:52:17.35ID:czwrZ62f118デフォルトの名無しさん
2021/12/23(木) 18:54:52.16ID:vyeaRFwP (?<![\h:])(?:(\h{1,4}:)(?:(:\h{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:\h{1,4}|:))(?![\h:])
120デフォルトの名無しさん
2021/12/23(木) 20:41:17.01ID:XObIp/CD >>113
\sに改行が含まれるからでしょ
Rubyとかなら0x09〜0x0D(水平タブHT,LF改行,垂直タブVT,改頁,CR改行)と0x20(スペース)
サクラエディタの鬼雲なら上記に加えて、
その他の改行種(NEL,PS,LS)や空白種(全角スペースやNBSPなど)
\sに改行が含まれるからでしょ
Rubyとかなら0x09〜0x0D(水平タブHT,LF改行,垂直タブVT,改頁,CR改行)と0x20(スペース)
サクラエディタの鬼雲なら上記に加えて、
その他の改行種(NEL,PS,LS)や空白種(全角スペースやNBSPなど)
121デフォルトの名無しさん
2021/12/23(木) 21:45:21.05ID:vyeaRFwP ([0-9a-f]{1,4}:)(?:(:[0-9a-f]{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:[0-9a-f]{1,4}|:)
(?<![0-9a-f:])(?:([0-9a-f]{1,4}:)(?:(:[0-9a-f]{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:[0-9a-f]{1,4}|:))(?![0-9a-f:])
(?<![0-9a-f])(?:([0-9a-f]{1,4}:)(?:(:[0-9a-f]{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:[0-9a-f]{1,4}|:))(?![0-9a-f:])
(?<![0-9a-f:])(?:([0-9a-f]{1,4}:)(?:(:[0-9a-f]{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:[0-9a-f]{1,4}|:))(?![0-9a-f:])
(?<![0-9a-f])(?:([0-9a-f]{1,4}:)(?:(:[0-9a-f]{1,4}){1,6}|:)|\g'1'{2}(?:\g'2'{1,5}|:)|\g'1'{3}(?:\g'2'{1,4}|:)|\g'1'{4}(?:\g'2'{1,3}|:)|\g'1'{5}(?:\g'2'{1,2}|:)|\g'1'{6}(?:\g'2'{1}|:)|\g'1'{7}(?:[0-9a-f]{1,4}|:))(?![0-9a-f:])
122デフォルトの名無しさん
2021/12/24(金) 07:37:01.80ID:MVBh4BeN (([0-9a-f]{1,4}):){7}(?:\g'2'|:)|\g'1'{6}(?:(:\g'2')|:)|\g'1'{5}(?:\g'3'{1,2}|:)|\g'1'{4}(?:\g'3'{1,3}|:)|\g'1'{3}(?:\g'3'{1,4}|:)|\g'1'{2}(?:\g'3'{1,5}|:)|\g'1'(?:\g'3'{1,6}|:)
123デフォルトの名無しさん
2021/12/24(金) 12:59:57.29ID:OtUQWwNp 短くするの?
(([0-9a-f]{1,4}):){7}(\g'2'|:)|(\g'1'()|(?=\5)(?!\6):()){1,6}\g'2'?(?=\6)
(([0-9a-f]{1,4}):){7}(\g'2'|:)|(\g'1'()|(?=\5)(?!\6):()){1,6}\g'2'?(?=\6)
124デフォルトの名無しさん
2021/12/24(金) 15:17:06.00ID:nz+3yICM すげえw
()で文字間の位置をキャプチャ出来る事もそれを参照で先読みで使える事も知らなかったわ
()で文字間の位置をキャプチャ出来る事もそれを参照で先読みで使える事も知らなかったわ
125デフォルトの名無しさん
2021/12/24(金) 16:07:46.99ID:TnoL0oNz126デフォルトの名無しさん
2021/12/24(金) 16:09:42.73ID:TnoL0oNz127デフォルトの名無しさん
2021/12/24(金) 23:23:23.50ID:zm3lCbTy128デフォルトの名無しさん
2021/12/25(土) 12:25:23.75ID:e5f15Ru5 世界でもトップレベルの秀才たちが決めた規格なのになんでこんなに扱いづらいんだ?
そういえばメールアドレスの規格も酷かったな〜(>>3の雑技を参照)
そういえばメールアドレスの規格も酷かったな〜(>>3の雑技を参照)
129デフォルトの名無しさん
2021/12/25(土) 12:36:10.52ID:JZM3mrrs むしろ 出来る人 は難しいかどうかが分からないからじゃない?
なんでこの程度の事でこの人たち四苦八苦してるんだろう、ってね
税制などと同じで敢えてややこしく作って仕事作ってるという側面もあるのかもね
なんでこの程度の事でこの人たち四苦八苦してるんだろう、ってね
税制などと同じで敢えてややこしく作って仕事作ってるという側面もあるのかもね
130デフォルトの名無しさん
2021/12/25(土) 12:50:35.23ID:e5f15Ru5 頭が良すぎるのも考えものだな、IT土方の気持ちなんて分からないだろうな
頭が良すぎる人の考える正規表現は大抵論理的に正しく動くが
検索効率を上げる書き方には興味が無いらしく強欲を使ったり
今回のIP6の例で言えば先頭に (?=[\h:]{6}) を置いて検索スピードを
上げようというIT土方ならではの実践的手法が使われないことが多い ex. >>125
頭が良すぎる人の考える正規表現は大抵論理的に正しく動くが
検索効率を上げる書き方には興味が無いらしく強欲を使ったり
今回のIP6の例で言えば先頭に (?=[\h:]{6}) を置いて検索スピードを
上げようというIT土方ならではの実践的手法が使われないことが多い ex. >>125
131デフォルトの名無しさん
2021/12/25(土) 13:00:34.13ID:Qk7G85M2 老舗旅館の増築みたいなもんでしょ
後方互換性を保とうとしたらそうならざるを得ない
MS-DOSをひきずるWindowsのようなもん
後方互換性を保とうとしたらそうならざるを得ない
MS-DOSをひきずるWindowsのようなもん
132デフォルトの名無しさん
2021/12/25(土) 13:21:44.54ID:e5f15Ru5 windowsは増築しすぎてグシャっといきそうになってるね
133デフォルトの名無しさん
2021/12/25(土) 13:46:31.03ID:JZM3mrrs まあ俺も底辺ドカタの気持ちなんてさっぱりだわ悪いけどw
134デフォルトの名無しさん
2021/12/25(土) 14:30:45.29ID:y5wYV+SA ね
135デフォルトの名無しさん
2021/12/25(土) 14:38:13.23ID:e5f15Ru5136デフォルトの名無しさん
2021/12/25(土) 20:41:20.89ID:y5wYV+SA 無法地帯
137デフォルトの名無しさん
2021/12/25(土) 22:12:05.75ID:e5f15Ru5 kkosさんここ見に来てるかな
https://github.com/kkos/oniguruma/blob/master/doc/RE.ja
539行目
× + 不在停止 (?|...)
〇 + 不在停止 (?~|...)
来年はISO-2022-JPの年、今年も1年お疲れ様
https://github.com/kkos/oniguruma/blob/master/doc/RE.ja
539行目
× + 不在停止 (?|...)
〇 + 不在停止 (?~|...)
来年はISO-2022-JPの年、今年も1年お疲れ様
138デフォルトの名無しさん
2021/12/26(日) 10:52:57.40ID:XNM+0b8X139デフォルトの名無しさん
2021/12/27(月) 00:34:46.64ID:BHlowg/U140139
2021/12/27(月) 19:30:29.63ID:BHlowg/U あれ、でも他の分岐に行っても保持されるのならどの分岐を抜けてきたかの
判断はどうやってするんだろう?
繰り返しをしてる中ですべての分岐で保持が成功していたら区別が付かない
まぁ正規表現でやらずにコード書けばいいだけだけど
判断はどうやってするんだろう?
繰り返しをしてる中ですべての分岐で保持が成功していたら区別が付かない
まぁ正規表現でやらずにコード書けばいいだけだけど
141デフォルトの名無しさん
2021/12/28(火) 01:38:40.34ID:e4meyx5L 高度IT人材、富士通は最大年収3500万円へ
「富士通年収3500万!」日本のIT企業の年収も、高額化してきました
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
副業・兼務の解禁から4年、ロート製薬流で進めるキャリア支援
ロート製薬が副業をいち早く導入した「超人間的」な理由
ロート製薬会長が「副業を受け入れない会社は発展しない」と断言する理由
「富士通年収3500万!」日本のIT企業の年収も、高額化してきました
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
副業・兼務の解禁から4年、ロート製薬流で進めるキャリア支援
ロート製薬が副業をいち早く導入した「超人間的」な理由
ロート製薬会長が「副業を受け入れない会社は発展しない」と断言する理由
142デフォルトの名無しさん
2021/12/28(火) 08:15:55.40ID:2qR0ux8Z 富士通は電子カルテがクソ
143デフォルトの名無しさん
2021/12/28(火) 11:45:39.94ID:6tSOSnH1 捕獲したものを手放してnilに戻すメタ文字があればいいのか?
# \2, \3, \4 の中身をnilにするメモリクリア
\mc{2-4} or \mc{2,3,4}
中身をクリア出来るなら任意の文字列の代入も出来る
# \2, \3, \4の中身を書き換え
\m{2=foo,3=bar,4=hoge}
(?{code})が使えない環境では重宝する機能になる
当然名前付きのものも書き換えられるようにするのが望ましい
# \2, \3, \4 の中身をnilにするメモリクリア
\mc{2-4} or \mc{2,3,4}
中身をクリア出来るなら任意の文字列の代入も出来る
# \2, \3, \4の中身を書き換え
\m{2=foo,3=bar,4=hoge}
(?{code})が使えない環境では重宝する機能になる
当然名前付きのものも書き換えられるようにするのが望ましい
144デフォルトの名無しさん
2021/12/30(木) 00:46:28.20ID:Z0Yaemgr >>126
https://www.perlmonks.org/?displaytype=displaycode;node_id=1226069
これすご、理論屋さんの作った芸術作品て感じ
貪欲の繰り返しがどう動くかを分かってないとこれは書けないし
(*F)の入れ方も無駄がなくて素晴らしい
https://www.perlmonks.org/?displaytype=displaycode;node_id=1226069
これすご、理論屋さんの作った芸術作品て感じ
貪欲の繰り返しがどう動くかを分かってないとこれは書けないし
(*F)の入れ方も無駄がなくて素晴らしい
145デフォルトの名無しさん
2021/12/30(木) 19:53:03.05ID:Z0Yaemgr IPv6アドレスのテキスト表記
https://www.youtube.com/watch?v=EvIUZwkGWQE
予想以上に自由度が高くてワロタ
>>91にまともな回答が付かないのは必然だったのか
正規表現を作れたとしてもサクラエディタの検索欄にはたぶん入らないね
https://www.youtube.com/watch?v=EvIUZwkGWQE
予想以上に自由度が高くてワロタ
>>91にまともな回答が付かないのは必然だったのか
正規表現を作れたとしてもサクラエディタの検索欄にはたぶん入らないね
146デフォルトの名無しさん
2021/12/30(木) 20:19:42.39ID:Z0Yaemgr そもそもIPを簡単に取り出せないようなデータというのはどんなデータだったんだろ?
普通はIPならIPと分かるようなデータの入れ方をする
非包含オペレータ (absence operator) (実験的)
https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html#absenceop
>例えば (?~abc) は "", "ab", "aab", "abb", "ccdd" などにはマッチしますが、
>"abc", "aabc", "ccabcdd" などにはマッチしません。
この説明では意味が伝わりにくいな
"例えば ^(?~abc)$ は" に修正したほうがいい
鬼雲は放置気味だけどこの先どうするのかな
普通はIPならIPと分かるようなデータの入れ方をする
非包含オペレータ (absence operator) (実験的)
https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html#absenceop
>例えば (?~abc) は "", "ab", "aab", "abb", "ccdd" などにはマッチしますが、
>"abc", "aabc", "ccabcdd" などにはマッチしません。
この説明では意味が伝わりにくいな
"例えば ^(?~abc)$ は" に修正したほうがいい
鬼雲は放置気味だけどこの先どうするのかな
147デフォルトの名無しさん
2021/12/30(木) 22:40:15.48ID:HA6WwjkY148デフォルトの名無しさん
2021/12/30(木) 23:19:26.02ID:Z0Yaemgr >>147
これはperl等でパーサを作って検索すべき案件だろうから
テキストエディタではなかなか厳しいね
正規表現の基本的なことで分からないことがあったらまた聞きに来てね
上の正規表現の猛者たちよりも親切な回答を付けるよw
これはperl等でパーサを作って検索すべき案件だろうから
テキストエディタではなかなか厳しいね
正規表現の基本的なことで分からないことがあったらまた聞きに来てね
上の正規表現の猛者たちよりも親切な回答を付けるよw
149デフォルトの名無しさん
2022/01/01(土) 01:28:53.52ID:h8w5g6J4 [あ-うけてめでとおござします]+
150デフォルトの名無しさん
2022/01/01(土) 18:17:24.41ID:bYLu/xf5 ^(?~厄)$
151デフォルトの名無しさん
2022/01/01(土) 21:13:00.82ID:ZbTXyVwF .replace(/謹/g,'新年')
152デフォルトの名無しさん
2022/01/02(日) 00:08:00.18ID:Ez7RAQeW 2022-01-01【ランダムな文字列】
の【ランダムな文字列】にマッチさせるにはどのように書いたら良いですか?
の【ランダムな文字列】にマッチさせるにはどのように書いたら良いですか?
153デフォルトの名無しさん
2022/01/02(日) 00:24:32.24ID:1LGQCNAT テンプレを読めるようになってから出直そう
154デフォルトの名無しさん
2022/01/02(日) 01:16:44.72ID:xTWkFa8M Onigmo の非包含オペレータのバグを再現する方法
https://github.com/tonco-miyazawa/regex_etc/blob/master/Absence_reappear_bug.txt
>>152 正規表現エンジンは何?
https://github.com/tonco-miyazawa/regex_etc/blob/master/Absence_reappear_bug.txt
>>152 正規表現エンジンは何?
155デフォルトの名無しさん
2022/01/02(日) 01:27:24.76ID:4Qt0RmdX (?<=^2022-01-01).++$
156デフォルトの名無しさん
2022/01/02(日) 02:23:07.29ID:q3p7RZao なんで強欲?
157デフォルトの名無しさん
2022/01/03(月) 03:43:07.67ID:BhOVhgCg サクラエディタおじさんなのだが
よほど古くなければ検索文字数に上限はほぼない
ただし履歴とウインドウ間共有には259文字の上限がある
再利用にはマクロにしておくべし
あとWindowsダイアログの1行エディットコントロールには文字列幅が32767pxを超えると真っ白になるバグがある
正規表現キーワードは1000文字
よほど古くなければ検索文字数に上限はほぼない
ただし履歴とウインドウ間共有には259文字の上限がある
再利用にはマクロにしておくべし
あとWindowsダイアログの1行エディットコントロールには文字列幅が32767pxを超えると真っ白になるバグがある
正規表現キーワードは1000文字
158デフォルトの名無しさん
2022/01/03(月) 19:36:44.28ID:X+IIU15J 今時の正規表現エンジンを使えるエディタなら3000文字くらいは許容して欲しい
欲を言えば正規表現をテキストエディタ画面で作ってそのまま実行出来るように
なったらいいな、/x オプションが設定されるのがデフォで・・
Jane用に作った鬼雲用の正規表現は1600文字超だった
https://github.com/tonco-miyazawa/regex_etc/blob/master/ReplaceStr_Part11_res549.txt
欲を言えば正規表現をテキストエディタ画面で作ってそのまま実行出来るように
なったらいいな、/x オプションが設定されるのがデフォで・・
Jane用に作った鬼雲用の正規表現は1600文字超だった
https://github.com/tonco-miyazawa/regex_etc/blob/master/ReplaceStr_Part11_res549.txt
159デフォルトの名無しさん
2022/01/03(月) 21:53:14.12ID:Pucsg4jY 常用漢字表外漢字を検索する正規表現をお願いします!
160デフォルトの名無しさん
2022/01/03(月) 23:25:26.42ID:Rgi2CjE6 テキストエディタをまた〜り語ろう ver.25
https://pc11.2ch.net/test/read.cgi/software/1201173972/193
193 174 sage 2008/02/19(火) 03:19:25 ID:W6zn4Vm/0
K2Editorが検索テキストボックスに20000桁超の文字列入れられるから
正規表現「|」でつないだOR検索するのに便利ってだけなんだけどね
(秀丸はそもそもOR検索で「|」が10個くらいまでしか使えないという制限がある
サクラエディタは検索条件テキストボックスに258桁までしか入力できない)
他にはEmEditorが優秀な部類で検索条件に数千桁までは指定できたんだけど、
20000桁はさすがに無理でしたw
https://pc11.2ch.net/test/read.cgi/software/1201173972/193
193 174 sage 2008/02/19(火) 03:19:25 ID:W6zn4Vm/0
K2Editorが検索テキストボックスに20000桁超の文字列入れられるから
正規表現「|」でつないだOR検索するのに便利ってだけなんだけどね
(秀丸はそもそもOR検索で「|」が10個くらいまでしか使えないという制限がある
サクラエディタは検索条件テキストボックスに258桁までしか入力できない)
他にはEmEditorが優秀な部類で検索条件に数千桁までは指定できたんだけど、
20000桁はさすがに無理でしたw
161デフォルトの名無しさん
2022/01/04(火) 16:23:29.29ID:oLEgCIB5 2万文字じゃなくて2万桁か、入力して検索ボタン押したらエディタが凍りそう
こういうのをエディタでやろうとする人はスクリプト書けない人なのかな
こういうのをエディタでやろうとする人はスクリプト書けない人なのかな
162デフォルトの名無しさん
2022/01/04(火) 16:26:30.10ID:3hJH9p5O 変な使い方すんなし
163デフォルトの名無しさん
2022/01/05(水) 02:42:52.49ID:PfznQmjq emEditorちゃんの新しいアピールポイント発見されたやん
作者さんに伝えたら喜ぶぞお〜
作者さんに伝えたら喜ぶぞお〜
164デフォルトの名無しさん
2022/01/05(水) 03:17:14.08ID:rvz1fckd otbeditをアップデートしたら正規表現が進化しててびっくりしたな
\=A で "選択範囲の先頭にマッチ" みたいな独自のものもあって面白い
ただ正規表現の入力ダイアログは変わってなさそう
複雑な正規表現を使うならperlでやっちゃうから結局は使わないんだけどね
\=A で "選択範囲の先頭にマッチ" みたいな独自のものもあって面白い
ただ正規表現の入力ダイアログは変わってなさそう
複雑な正規表現を使うならperlでやっちゃうから結局は使わないんだけどね
165デフォルトの名無しさん
2022/01/15(土) 15:07:39.96ID:LSXPKCTg 鬼車の更新きた、が>>137の件はそのままだった
作者氏のブログを読んでたらいつの間にか下山事件について調べてたw
この事件があったことは前に国鉄事故一覧を読んでたから知ってたけど
ミステリー要素に興味が無い自分はスルーしてた
作者氏のブログを読んでたらいつの間にか下山事件について調べてたw
この事件があったことは前に国鉄事故一覧を読んでたから知ってたけど
ミステリー要素に興味が無い自分はスルーしてた
166デフォルトの名無しさん
2022/01/15(土) 20:13:16.46ID:YXcsuWEv 5chで化けるキャリア絵文字をNGにしたいんだけど、もっとマシな書き方ある?
&(hearts|#[0-9]{3,6});(?# キャリア絵文字NG)
&(hearts|#[0-9]{3,6});(?# キャリア絵文字NG)
167デフォルトの名無しさん
2022/01/16(日) 21:51:20.72ID:9z0xsGVh (^♣^)
168デフォルトの名無しさん
2022/01/17(月) 07:41:03.81ID:a00LkpSK >>165
kkosさんが5ちゃんねる見てるという情報はないしねえ
ちなみにk.takataさんの方はサクラエディタスレでbregonig.dllのデバッグ進めてたこともあるし
このスレ見てても不思議ではない
kkosさんが5ちゃんねる見てるという情報はないしねえ
ちなみにk.takataさんの方はサクラエディタスレでbregonig.dllのデバッグ進めてたこともあるし
このスレ見てても不思議ではない
169デフォルトの名無しさん
2022/01/17(月) 20:57:45.62ID:JTE3FsjP170デフォルトの名無しさん
2022/01/21(金) 06:38:47.99ID:sXrjqYWb171デフォルトの名無しさん
2022/01/21(金) 18:07:28.01ID:kuE6phYE 闇でもなんでもなく松本の狭量さを示す事実だけだろ
172デフォルトの名無しさん
2022/01/21(金) 18:44:15.58ID:0+co4YWB onigurumaの話題を出すとこうなってしまうんならよそでやるか・・
ここでの書き込みはこれが最後です、スレ汚しすみませんでした
ここでの書き込みはこれが最後です、スレ汚しすみませんでした
173170
2022/01/21(金) 19:13:35.61ID:sXrjqYWb174170
2022/01/21(金) 19:16:55.46ID:sXrjqYWb ちなみにこのツイートかなり気になります
Rubyの正規表現エンジンを鬼雲から鬼車に戻す構想があるのかな?
https://twitter.com/kokuyouwind/status/1436202765101928461
P.S.
ツイートは鬼雲(Onigmo)のスペルを間違えています
https://twitter.com/5chan_nel (5ch newer account)
Rubyの正規表現エンジンを鬼雲から鬼車に戻す構想があるのかな?
https://twitter.com/kokuyouwind/status/1436202765101928461
P.S.
ツイートは鬼雲(Onigmo)のスペルを間違えています
https://twitter.com/5chan_nel (5ch newer account)
175デフォルトの名無しさん
2022/01/22(土) 01:55:21.54ID:OtRmDEvF rubyは内部のエンコーディングを固定してないそうだから鬼車系から離れられないんじゃないか
re2はutf-8/iso-8859-1の2択だし
re2はutf-8/iso-8859-1の2択だし
176デフォルトの名無しさん
2022/01/22(土) 18:56:13.90ID:UcGEJ67s いろいろあるんだな
177デフォルトの名無しさん
2022/01/24(月) 20:07:59.38ID:nkigtwKI178デフォルトの名無しさん
2022/01/24(月) 23:09:01.61ID:Kqmt+jMz すみません空行を表すモノは「^\n」以外に何かありますでしょうか?
179デフォルトの名無しさん
2022/01/24(月) 23:16:14.46ID:6TTx6Dab 言葉不足すぎて何も言えない
>>2のテンプレ通り書いて
>>2のテンプレ通り書いて
180デフォルトの名無しさん
2022/01/24(月) 23:35:46.42ID:9KZ/AsJf ^$ とか?
181デフォルトの名無しさん
2022/01/25(火) 00:03:53.36ID:aASmTB60 \n{2,}
(?<=\n)\n+
(?<=\n)\n+
182デフォルトの名無しさん
2022/01/25(火) 00:05:00.68ID:FywNzPTU183デフォルトの名無しさん
2022/01/25(火) 00:06:24.26ID:FywNzPTU184デフォルトの名無しさん
2022/01/25(火) 00:15:07.84ID:/DnSxEx4 (?m)^\n
185デフォルトの名無しさん
2022/01/25(火) 13:46:33.02ID:PQbOJgVd 解決してなによりだけど
親会社が作った特殊ソフトとか
親会社の担当に聞くべき案件なのでは
親会社が作った特殊ソフトとか
親会社の担当に聞くべき案件なのでは
186デフォルトの名無しさん
2022/01/29(土) 12:49:12.10ID:yDE0S1/7 JaneStyle
【 正規表現ライブラリ 】 bregonig.dll Ver.1.46 with Oniguruma 5.9.2
検索
競馬 競輪 競艇 競泳
競(?:馬|輪|艇|泳)
競[馬輪艇泳]
この場合 上、式集合 と 下、文字集合 どちらが好ましいでしょうか
【 正規表現ライブラリ 】 bregonig.dll Ver.1.46 with Oniguruma 5.9.2
検索
競馬 競輪 競艇 競泳
競(?:馬|輪|艇|泳)
競[馬輪艇泳]
この場合 上、式集合 と 下、文字集合 どちらが好ましいでしょうか
187186
2022/01/29(土) 13:01:44.15ID:yDE0S1/7 検索文字が増えていくので処理速度で考えるとどちらが速いでしょうか
188デフォルトの名無しさん
2022/01/29(土) 13:32:54.07ID:HGXegLzO 予想でしかないけどパースは文字集合の方が簡単だろうし動作も文字集合の方が軽い気がする
基本的に出来ることが少ない方が処理は楽だから
まあよほど大量の文書を処理しないと認識できる違いが出るとは思えないけど
基本的に出来ることが少ない方が処理は楽だから
まあよほど大量の文書を処理しないと認識できる違いが出るとは思えないけど
189デフォルトの名無しさん
2022/01/29(土) 14:55:24.78ID:yDE0S1/7 >>188
ありがとうございます
ありがとうございます
190デフォルトの名無しさん
2022/01/31(月) 21:41:49.66ID:TKYU0FmV どうして[aa][aa][aa]や[aa]b[aa]ab[aa]にはならないのですか
https://ideone.com/WKK9DO
my $str = 'abab';
$str =~ s/(?<=\Ka)b/[$&]/g;
print ${str}; # [ab][ab]
my $str = 'aaaaaa';
$str =~ s/(?<=\K.)./[$&]/g;
print $str; # [aa]aaaa
my $str = 'aabaaabaa';
$str =~ s/(?<=\Ka)a/[$&]/g;
print $str; # [aa]b[aa]abaa
https://ideone.com/WKK9DO
my $str = 'abab';
$str =~ s/(?<=\Ka)b/[$&]/g;
print ${str}; # [ab][ab]
my $str = 'aaaaaa';
$str =~ s/(?<=\K.)./[$&]/g;
print $str; # [aa]aaaa
my $str = 'aabaaabaa';
$str =~ s/(?<=\Ka)a/[$&]/g;
print $str; # [aa]b[aa]abaa
191デフォルトの名無しさん
2022/02/01(火) 08:22:41.99ID:1FVHaQ2P192デフォルトの名無しさん
2022/02/01(火) 12:52:35.33ID:xlL1v7Ej \K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<=\K <-- HERE a)b/
193デフォルトの名無しさん
2022/02/01(火) 20:14:34.81ID:RFI3kyJu194デフォルトの名無しさん
2022/02/11(金) 15:34:16.36ID:wiPjvtyL [<"]{1,2}[^<>"].+[>"]{1,2}
と書いたのですが
"C:\Windows\System32\calc.exe"と"C:\Windows\System32\notepad.exe"
"と"←この部分もヒットしていまいます
この部分をヒットしないようにするにはどうしたらいいですか?
と書いたのですが
"C:\Windows\System32\calc.exe"と"C:\Windows\System32\notepad.exe"
"と"←この部分もヒットしていまいます
この部分をヒットしないようにするにはどうしたらいいですか?
195デフォルトの名無しさん
2022/02/11(金) 15:43:32.09ID:3fYQCkDW 最短マッチで上手くいきそう
196デフォルトの名無しさん
2022/02/11(金) 15:47:22.25ID:XbmfRAz/ >>194
ドットいらない
ドットいらない
197デフォルトの名無しさん
2022/02/11(金) 15:50:16.57ID:iG9n81+f "\w:[^"]++"
198デフォルトの名無しさん
2022/02/11(金) 17:26:42.82ID:wiPjvtyL199デフォルトの名無しさん
2022/02/11(金) 18:08:03.21ID:yV5vo0tT >>197
java以外では最長と強欲の挙動って一緒なのかな?
java以外では最長と強欲の挙動って一緒なのかな?
200デフォルトの名無しさん
2022/02/11(金) 18:24:50.25ID:FMt4h3Z+ >>199
一緒だったらわざわざ別表記を作らないよ
一緒だったらわざわざ別表記を作らないよ
201デフォルトの名無しさん
2022/02/24(木) 15:01:33.70ID:hcs+VfLS ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
検索
●説明
指定した文字列を含む行と、それ以降の行を削除したいです
↓文字列がDの場合の例
●対象データ
ABCA
BCDAA
CABDA
●希望する結果
ABCA
行をまたぐので可能かはわかりませんが
よろしくお願いします
サクラエディタ
●検索か置換か?
検索
●説明
指定した文字列を含む行と、それ以降の行を削除したいです
↓文字列がDの場合の例
●対象データ
ABCA
BCDAA
CABDA
●希望する結果
ABCA
行をまたぐので可能かはわかりませんが
よろしくお願いします
202デフォルトの名無しさん
2022/02/24(木) 15:56:44.82ID:aUuEQTy2 置換では?
203デフォルトの名無しさん
2022/02/24(木) 16:21:25.53ID:XVFOP1rX ヘルプに書いてるでしょ
https://sakura-editor.github.io/help/HLP000089.html
> (mオプションが付いていますが、改行をまたいだ検索はできません。)
可能にする方法はあるようだが今も使えるのかは知らない
http://sakura.qp.land.to/?FAQ%2F2
素直に複数行検索置換出来るツールやエディタ使った方が良い
https://sakura-editor.github.io/help/HLP000089.html
> (mオプションが付いていますが、改行をまたいだ検索はできません。)
可能にする方法はあるようだが今も使えるのかは知らない
http://sakura.qp.land.to/?FAQ%2F2
素直に複数行検索置換出来るツールやエディタ使った方が良い
204デフォルトの名無しさん
2022/02/24(木) 16:39:23.62ID:hcs+VfLS >>203
失礼しました
これまでたまの置換えでしか使わなかったのでヘルプ読んでませんでした
また、別な無料のエディタで可能な正規表現があれば
セットで教えていただきたいです
ありがとうございました!
失礼しました
これまでたまの置換えでしか使わなかったのでヘルプ読んでませんでした
また、別な無料のエディタで可能な正規表現があれば
セットで教えていただきたいです
ありがとうございました!
205デフォルトの名無しさん
2022/02/24(木) 16:57:42.07ID:XVFOP1rX Mery
^(?=.*D)(.*\n)++
^(?=.*D)(.*\n)++
206デフォルトの名無しさん
2022/02/24(木) 18:04:56.22ID:hcs+VfLS >>205
希望通りにできました。エディタまで教えていただき本当にありがとうございます!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
希望通りにできました。エディタまで教えていただき本当にありがとうございます!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
207デフォルトの名無しさん
2022/03/05(土) 11:04:51.46ID:UMjr+RM8208デフォルトの名無しさん
2022/03/05(土) 13:30:05.01ID:ST2bI6pB よろしくおねがいします。
●Regular Expressionの使用環境
auto hot key
●検索か置換か?
置換
●説明
日本語URLを除去したい
%..* で一致するがPCRE書式化(AHK文法?)が解らず。。。
●対象データ
%00%00%00%00%00%00
00は数字2桁
●Regular Expressionの使用環境
auto hot key
●検索か置換か?
置換
●説明
日本語URLを除去したい
%..* で一致するがPCRE書式化(AHK文法?)が解らず。。。
●対象データ
%00%00%00%00%00%00
00は数字2桁
209デフォルトの名無しさん
2022/03/05(土) 14:39:44.43ID:CfflkLyE (%\d\d)++
210デフォルトの名無しさん
2022/03/05(土) 15:55:58.31ID:ST2bI6pB >>209
早速ありがとうございます!
wiki記載の意味がやっと理解できました。
下記エラーになりました。
すいません対象データ誤りで英数字2桁のため\w\wにしてもだめでした。
Line Text: \d\d
Error: The leftmost character above is illegal in an expression.
※\w\wも同じ。
構文的には正しいようです。
https://i.imgur.com/Wxv5olC.png
早速ありがとうございます!
wiki記載の意味がやっと理解できました。
下記エラーになりました。
すいません対象データ誤りで英数字2桁のため\w\wにしてもだめでした。
Line Text: \d\d
Error: The leftmost character above is illegal in an expression.
※\w\wも同じ。
構文的には正しいようです。
https://i.imgur.com/Wxv5olC.png
211デフォルトの名無しさん
2022/03/05(土) 15:58:19.76ID:auOTeG9V あれ、\dでいいの?文字コードだから16進じゃない?
212デフォルトの名無しさん
2022/03/05(土) 16:23:02.27ID:vjAKKjP5 (?:%[:xdigit:]{2})+
では?
では?
213デフォルトの名無しさん
2022/03/05(土) 16:33:42.80ID:vjAKKjP5 (?:%[[:xdigit:]]{2})+
だった
だった
214デフォルトの名無しさん
2022/03/05(土) 18:13:24.65ID:ST2bI6pB215デフォルトの名無しさん
2022/03/06(日) 00:13:11.29ID:6dwIIS19 wikiってどこのこと?
216デフォルトの名無しさん
2022/03/06(日) 16:28:44.42ID:ez4sjEWa217デフォルトの名無しさん
2022/03/13(日) 17:17:27.89ID:dODqeNlh218デフォルトの名無しさん
2022/03/19(土) 23:41:27.62ID:ur7rhOwp http://www.kt.rim.or.jp/~kbk/regex/regex.html#NOTINCLUDED
>某巨大掲示板のとあるスレッドの情報によれば、 非包含オペレーターが
>期待通りに動かないパターンがあるようです。
おぬし、さてはここを見ておるな? azure
>>217
故意にこれが出来るならSEO対策としてライバル企業をやっつけられるな
企業間でそんな話が出てないということは出来ないということではないだろうか
>某巨大掲示板のとあるスレッドの情報によれば、 非包含オペレーターが
>期待通りに動かないパターンがあるようです。
おぬし、さてはここを見ておるな? azure
>>217
故意にこれが出来るならSEO対策としてライバル企業をやっつけられるな
企業間でそんな話が出てないということは出来ないということではないだろうか
219デフォルトの名無しさん
2022/03/20(日) 07:35:08.60ID:AfbYOGC9 ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
置換
●説明
ある文字列Aを含む行のうち、ある文字列Bを含まない行を
すべて削除したいです
●対象データ(文字列Aを含む行のうち、Bを含まない行を削除。囲み数字はデータではなく単なる通し番号で入れています)
@ABCA
AFCAA
BCABA
CDBBC
DAFFC
EBABF
FFDFC
●希望する結果(Aが有って、Bが無いAD行を削除しました)
@ABCA
BCABA
CDBBC
EBABF
FFDFC
よろしくお願いいたします。
サクラエディタ
●検索か置換か?
置換
●説明
ある文字列Aを含む行のうち、ある文字列Bを含まない行を
すべて削除したいです
●対象データ(文字列Aを含む行のうち、Bを含まない行を削除。囲み数字はデータではなく単なる通し番号で入れています)
@ABCA
AFCAA
BCABA
CDBBC
DAFFC
EBABF
FFDFC
●希望する結果(Aが有って、Bが無いAD行を削除しました)
@ABCA
BCABA
CDBBC
EBABF
FFDFC
よろしくお願いいたします。
220デフォルトの名無しさん
2022/03/20(日) 07:55:09.42ID:UyeAjpj2 ^(?=.*A)(?!.*B)[\s\S]*
221デフォルトの名無しさん
2022/03/20(日) 08:51:18.12ID:AfbYOGC9 >>220
いつも素早い回答をありがとうございます!うまくいきました!誠に感謝です。ありがとうございました!
いつも素早い回答をありがとうございます!うまくいきました!誠に感謝です。ありがとうございました!
222デフォルトの名無しさん
2022/03/20(日) 19:15:12.05ID:ZHfPfLkc >>221
219より一つ前にあなたがした質問はどれ?
219より一つ前にあなたがした質問はどれ?
223デフォルトの名無しさん
2022/03/22(火) 18:15:19.98ID:CHL1FHKG224デフォルトの名無しさん
2022/04/05(火) 13:22:00.18ID:jmydyZMd225デフォルトの名無しさん
2022/04/09(土) 11:11:19.33ID:RvdBAddV ●正規表現環境: VS Code
●検索か置換か: 置換
●対象データ:24時間表記の時間
●説明:
24時間表記を12時間表記にしたい。
●例:
23:59:30 → 11:59:30
正規表現で可能ですか?
●検索か置換か: 置換
●対象データ:24時間表記の時間
●説明:
24時間表記を12時間表記にしたい。
●例:
23:59:30 → 11:59:30
正規表現で可能ですか?
226デフォルトの名無しさん
2022/04/09(土) 12:41:52.96ID:CVydPDGM227デフォルトの名無しさん
2022/04/09(土) 12:49:55.79ID:FmMbp+0V 13:→1:
14:→2:
…
24:→12:
分と秒は正規表現でキャプチャ
みたいに高々12回置換すればええやん?
そういう意味じゃないんか
14:→2:
…
24:→12:
分と秒は正規表現でキャプチャ
みたいに高々12回置換すればええやん?
そういう意味じゃないんか
228デフォルトの名無しさん
2022/04/09(土) 12:59:17.52ID:OC1bdbLm 愚直に12回置換すれば出来る
12(?=(?::[0-5]\d){2})
00
13(?=(?::[0-5]\d){2})
01
…
23(?=:[0-5]\d:(?:[0-5]\d|60))
11
12(?=(?::[0-5]\d){2})
00
13(?=(?::[0-5]\d){2})
01
…
23(?=:[0-5]\d:(?:[0-5]\d|60))
11
229デフォルトの名無しさん
2022/04/09(土) 14:50:47.61ID:CVydPDGM a.m.やp.m.の情報は消えても大丈夫なのかな?
230デフォルトの名無しさん
2022/04/09(土) 14:56:25.02ID:RvdBAddV amやpmは無くてもokです
231デフォルトの名無しさん
2022/04/13(水) 22:16:00.64ID:pxLJgBKP232デフォルトの名無しさん
2022/04/15(金) 16:20:16.62ID:M7wVtHzF Apacheのmod_rewrite(Perl互換)でルート直下の特定のディレクトリとその配下のみリダイレクトしない条件にヒットする正規表現を探しています
@/.well-known
A/.well-known/
B/.well-known/ランダムな文字列
この3つにヒットしてくれればいいのですが
・ルート直下なので行頭指定
・スラッシュのない方の.well-knownは行末を指定(完全一致)
・スラッシュのある方の.well-known/は配下のディレクトリへのアクセスも想定して行末を指定しない(前方一致)
を一行に収めようと考えた結果
^/\.well-known(/|$)
が思い浮かんだので使ってみたらなんとなく動いてるんですが
メタ文字の|って比較対象が行末の$だけでも機能するものなのでしょうか
完全一致+前方一致の書き方のお作法みたいなのがあればだれか教えてください…
@/.well-known
A/.well-known/
B/.well-known/ランダムな文字列
この3つにヒットしてくれればいいのですが
・ルート直下なので行頭指定
・スラッシュのない方の.well-knownは行末を指定(完全一致)
・スラッシュのある方の.well-known/は配下のディレクトリへのアクセスも想定して行末を指定しない(前方一致)
を一行に収めようと考えた結果
^/\.well-known(/|$)
が思い浮かんだので使ってみたらなんとなく動いてるんですが
メタ文字の|って比較対象が行末の$だけでも機能するものなのでしょうか
完全一致+前方一致の書き方のお作法みたいなのがあればだれか教えてください…
233デフォルトの名無しさん
2022/04/15(金) 21:37:03.46ID:GEApyL4S それでOK。 ケチを付けるなら (?:/|$) にすれば無駄なキャプチャを防げる。
先読みを理解してるなら (?=/|$) でもOK。
先読みを理解してるなら (?=/|$) でもOK。
234デフォルトの名無しさん
2022/04/16(土) 06:02:27.62ID:mQZGE0o5 正規表現を使ってモンスターを討伐していくゲーム「Regex Hunting」をプレイしてみた - GIGAZINE
https://gigazine.net/news/20220415-regex-hunting/
https://gigazine.net/news/20220415-regex-hunting/
235デフォルトの名無しさん
2022/04/16(土) 07:11:08.64ID:9DJ1ctMv236デフォルトの名無しさん
2022/04/20(水) 03:44:08.18ID:KwUP8MZL 正規表現道場スレに書きましたが過疎スレだったようでこちらで質問させていただきます
スマホのブラウザ(Berry browser)での検索結果にでたYouTubeのリンクを
NEWPIPEで開くようにする正規表現をおしえていただけませんか?
詳しく言語はなにかわかりません
スマホのブラウザ(Berry browser)での検索結果にでたYouTubeのリンクを
NEWPIPEで開くようにする正規表現をおしえていただけませんか?
詳しく言語はなにかわかりません
237デフォルトの名無しさん
2022/04/20(水) 03:46:48.26ID:hF4awL06 >>236
あっちで見せたスクショも見せてあげて
あっちで見せたスクショも見せてあげて
238デフォルトの名無しさん
2022/04/20(水) 04:01:59.26ID:KwUP8MZL239デフォルトの名無しさん
2022/04/20(水) 07:25:55.71ID:YedSEyAo240デフォルトの名無しさん
2022/04/20(水) 13:23:33.24ID:0zdB9CsP >>239
粘着警察
粘着警察
241デフォルトの名無しさん
2022/04/20(水) 13:29:26.67ID:U0AnfaoX .*YouTube.*
242デフォルトの名無しさん
2022/04/24(日) 11:37:18.90ID:HhXo0urf ●Regular Expressionの使用環境
秀丸エディタ
●検索か置換か?
検索
●説明
台詞の行の後は1行改行を置いて、また台詞の行になるように整形したいです
もしも「からはじまる行が2行連続している場合、そこにヒットするような検索方法があるなら、
何卒、ご教示の程よろしくお願いいたします。
●対象データ
「ダミーテキストAダミーテキストAダミーテキストA」
「ダミーテキストBダミーテキストBダミーテキストB」
「ダミーテキストCダミーテキストCダミーテキストC」
「ダミーテキストDダミーテキストDダミーテキストD」
●希望する結果
「ダミーテキストAダミーテキストAダミーテキストA」
「ダミーテキストBダミーテキストBダミーテキストB」
「ダミーテキストCダミーテキストCダミーテキストC」
「ダミーテキストDダミーテキストDダミーテキストD」
秀丸エディタ
●検索か置換か?
検索
●説明
台詞の行の後は1行改行を置いて、また台詞の行になるように整形したいです
もしも「からはじまる行が2行連続している場合、そこにヒットするような検索方法があるなら、
何卒、ご教示の程よろしくお願いいたします。
●対象データ
「ダミーテキストAダミーテキストAダミーテキストA」
「ダミーテキストBダミーテキストBダミーテキストB」
「ダミーテキストCダミーテキストCダミーテキストC」
「ダミーテキストDダミーテキストDダミーテキストD」
●希望する結果
「ダミーテキストAダミーテキストAダミーテキストA」
「ダミーテキストBダミーテキストBダミーテキストB」
「ダミーテキストCダミーテキストCダミーテキストC」
「ダミーテキストDダミーテキストDダミーテキストD」
243デフォルトの名無しさん
2022/04/24(日) 13:45:54.53ID:rcB2xidb >>242
\n+ を \n\n に置換すればいいんじゃね?
\n+ を \n\n に置換すればいいんじゃね?
244デフォルトの名無しさん
2022/04/24(日) 14:27:40.33ID:+3jFx4NA したい事が検索と書いてあるのに、整形したいですってどういう事?
整形したいって事は置換なの?
整形したいって事は置換なの?
245デフォルトの名無しさん
2022/04/24(日) 15:00:10.62ID:K7LKRW48 整形したい!痴漢なんです
イケメンならこんな事しなくて済みます
イケメンならこんな事しなくて済みます
246デフォルトの名無しさん
2022/04/24(日) 15:27:14.57ID:HHIBSCEK247デフォルトの名無しさん
2022/04/24(日) 15:30:33.03ID:ioskjRP6 > 検索と書いてあるのに、整形したいですってどういう事?
秀丸から察しろよw
池沼でしょ
」\n「
」\n\n「
秀丸から察しろよw
池沼でしょ
」\n「
」\n\n「
248デフォルトの名無しさん
2022/05/01(日) 14:50:51.02ID:GoET9IZ/ CSVファイルのセパレータ以外にマッチさせる正規表現が分かればご教示ください
ダブルクォートの中のカンマはセパレータではないという条件が難しく難儀しています
ダブルクォートの中のカンマはセパレータではないという条件が難しく難儀しています
249デフォルトの名無しさん
2022/05/01(日) 15:35:29.51ID:Rd1MW222 >>248
csv 正規表現 でググれ
csv 正規表現 でググれ
250デフォルトの名無しさん
2022/05/02(月) 15:41:45.47ID:3wkltjCW >>2のテンプレで環境や対象データ、希望結果のサンプルを書いてよ
251デフォルトの名無しさん
2022/05/03(火) 04:52:31.13ID:UnZpzFGu "あ,い
う'え""お"
これでも、1列しかない。
最初・最後のダブルクォーテーションで、1つの列内・要素を表す
その要素内では、カンマ・改行・シングルクォーテーション・ダブルクォーテーションも使える。
ただし、ダブルクォーテーションは2つ連続させて、1つのダブルクォーテーションと解釈される
だから、このダブルクォーテーションの規則が難しい。
例えば、ダブルクォーテーションに番号を振ると、1-23-45-6
連続したダブルクォーテーションを排除して、1-6 の形で、1つの要素を表す。
つまり、最後のダブルクォーテーションは偶数番目になる
もし、奇数番目で終わっていたら、形式エラー
う'え""お"
これでも、1列しかない。
最初・最後のダブルクォーテーションで、1つの列内・要素を表す
その要素内では、カンマ・改行・シングルクォーテーション・ダブルクォーテーションも使える。
ただし、ダブルクォーテーションは2つ連続させて、1つのダブルクォーテーションと解釈される
だから、このダブルクォーテーションの規則が難しい。
例えば、ダブルクォーテーションに番号を振ると、1-23-45-6
連続したダブルクォーテーションを排除して、1-6 の形で、1つの要素を表す。
つまり、最後のダブルクォーテーションは偶数番目になる
もし、奇数番目で終わっていたら、形式エラー
252デフォルトの名無しさん
2022/05/03(火) 12:12:48.00ID:aiGUnYt7 ("[^"]*")+|[^,"\r\n]+|(?<=,)|^(?=,)
https://regex101.com/r/bIK679/1#Eb3c9v813lTbFbhMKiOwdJxb
https://regex101.com/r/bIK679/1#Eb3c9v813lTbFbhMKiOwdJxb
253デフォルトの名無しさん
2022/05/03(火) 14:14:16.35ID:t3Dpq+T6 (?=,|$)
254デフォルトの名無しさん
2022/05/13(金) 22:38:19.25ID:8kGCIaIA ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
置き換え
●説明
タブ区切りcsvファイルの列の順番を入れ替えたい
●対象データ
1\t2\t3\t・・・\t30
※実際は各フィールドは数字だけではなく、長さも一定ではありません。
フィールド数は30で固定です。
●希望する結果・・を出すために、
^(.*?\t)(.*?\t)・・・(.*)
$3,$8,$1・・・
のように書いて、一旦用は足りましたが
これをもっとスマートに書く方法はありますでしょうか。
よろしくお願いいたします。
サクラエディタ
●検索か置換か?
置き換え
●説明
タブ区切りcsvファイルの列の順番を入れ替えたい
●対象データ
1\t2\t3\t・・・\t30
※実際は各フィールドは数字だけではなく、長さも一定ではありません。
フィールド数は30で固定です。
●希望する結果・・を出すために、
^(.*?\t)(.*?\t)・・・(.*)
$3,$8,$1・・・
のように書いて、一旦用は足りましたが
これをもっとスマートに書く方法はありますでしょうか。
よろしくお願いいたします。
255デフォルトの名無しさん
2022/05/14(土) 01:45:41.14ID:rmaMAnUs $30を別の場所に持ってくると右隣りとくっついてしまうな
256デフォルトの名無しさん
2022/05/14(土) 05:36:59.01ID:NJOQ17Ts テンプレ使っているようでテンプレ無視して実例挙げず
タブ区切りのはずが何故かカンマ+タブの区切りになっているがその説明も無し
タブ区切りのはずが何故かカンマ+タブの区切りになっているがその説明も無し
257デフォルトの名無しさん
2022/05/14(土) 08:03:49.09ID:qR2dE/b7 本当に タブ+カンマ にしたいとしても俺なら
^(.*?)\t(.*?)\t・・・(.*)$
$3\t,$8\t,$1\t・・・
って書くかな
^(.*?)\t(.*?)\t・・・(.*)$
$3\t,$8\t,$1\t・・・
って書くかな
258デフォルトの名無しさん
2022/05/14(土) 09:56:07.44ID:/Fl6kBO1 俺が作るなら [^\t]* を使って誤爆の可能性を潰しておく
列が31以上ある異常データのときに置換しなくする
列が31以上ある異常データのときに置換しなくする
259デフォルトの名無しさん
2022/05/14(土) 10:21:31.73ID:bJIgpLv6 処理対象ファイルが数十個あるとかなら別だけど、表計算ソフトや対応エディタでサクっと入れ替えた方が早そう
260デフォルトの名無しさん
2022/05/14(土) 11:56:38.01ID:/Fl6kBO1261デフォルトの名無しさん
2022/05/16(月) 18:46:22.01ID:nBhW9usr 探している正規表現の学習サイトがあります。
ネットスラング、小説などの蘊蓄を題材にした問題が置いてあるサイトです。
AAが問題の解説を行なっていた記憶があります
UIはシンプルながら、メタ文字から始まり、後方参照などの発展的な部分、総括したチャレンジ問題など結構ボリュームがある問題集でした。
久しぶりに見にいきたかったのですが、どうにも見つからず、
どなたかご存知でしたら教えていただけると幸いです。
よろしくお願いします。
ネットスラング、小説などの蘊蓄を題材にした問題が置いてあるサイトです。
AAが問題の解説を行なっていた記憶があります
UIはシンプルながら、メタ文字から始まり、後方参照などの発展的な部分、総括したチャレンジ問題など結構ボリュームがある問題集でした。
久しぶりに見にいきたかったのですが、どうにも見つからず、
どなたかご存知でしたら教えていただけると幸いです。
よろしくお願いします。
262デフォルトの名無しさん
2022/05/24(火) 04:21:55.25ID:SL15aOsO 質問させてください。
荒らし対策に「読点2回」を指定するNG表現を作ってみたのですが、一応機能しました
(.*\、.*\n*){2}
上記はもっと簡略化できるでしょうか?
荒らし対策に「読点2回」を指定するNG表現を作ってみたのですが、一応機能しました
(.*\、.*\n*){2}
上記はもっと簡略化できるでしょうか?
263デフォルトの名無しさん
2022/05/24(火) 04:27:32.12ID:7Wh7VSQ0 、.*?、
264デフォルトの名無しさん
2022/05/24(火) 04:43:45.06ID:SL15aOsO265デフォルトの名無しさん
2022/05/24(火) 05:20:15.74ID:SL15aOsO すみません、ありがとうございました。
266デフォルトの名無しさん
2022/05/25(水) 21:16:43.73ID:rVRUpzpa 自分が書いた正規表現を半年後くらいに見たら
何の処理なのか思い出せない。
正規表現って便利だが、そう言う点が唯一のデメリットだよな。
何の処理なのか思い出せない。
正規表現って便利だが、そう言う点が唯一のデメリットだよな。
267デフォルトの名無しさん
2022/05/25(水) 21:33:08.27ID:JiQQrvQ9 >>264
(10文字以上、){2,}
(10文字以上、){2,}
268デフォルトの名無しさん
2022/05/25(水) 22:10:02.21ID:SBYC3EV0 (?#何の処理)
269デフォルトの名無しさん
2022/05/26(木) 10:08:16.60ID:Nn08GFXz ●Regular Expressionの使用環境
PowerShell 7.2.4
●検索か置換か?
置換(-replaceもしくは[regex]::Replace)
もしくは抽出(-match)
●説明
ドメインからサブドメインを取り除いた値が欲しい
●対象データ
www.example.com
hoge.www.example.com
hoge.hoge.www.example.com
●希望する結果
example.com
example.com
example.com
お願いします
PowerShell 7.2.4
●検索か置換か?
置換(-replaceもしくは[regex]::Replace)
もしくは抽出(-match)
●説明
ドメインからサブドメインを取り除いた値が欲しい
●対象データ
www.example.com
hoge.www.example.com
hoge.hoge.www.example.com
●希望する結果
example.com
example.com
example.com
お願いします
270デフォルトの名無しさん
2022/05/26(木) 10:11:53.48ID:Nn08GFXz >>269
すいません、これだと「example.com$でいいだろ」になりますね
バラバラなURL、つまり
●対象データ
www.example.com
hoge.www.test.com
hoge.hoge.www.foo.com
●希望する結果
example.com
test.com
foo.com
でお願いします…
すいません、これだと「example.com$でいいだろ」になりますね
バラバラなURL、つまり
●対象データ
www.example.com
hoge.www.test.com
hoge.hoge.www.foo.com
●希望する結果
example.com
test.com
foo.com
でお願いします…
271デフォルトの名無しさん
2022/05/26(木) 10:34:55.49ID:6qaNDFBW powershellでの書き方は分からんが
[^.]++\.com$
[^.]++\.com$
272デフォルトの名無しさん
2022/05/26(木) 10:51:21.71ID:Ax+O2qu3 >>271
それで得られるの.comドメインだけじゃね
それで得られるの.comドメインだけじゃね
273デフォルトの名無しさん
2022/05/26(木) 11:26:16.23ID:JFz3AkL/ (?m:((?:[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*)\.[a-zA-Z]{2,})$)
274デフォルトの名無しさん
2022/05/26(木) 13:28:50.78ID:DqYj7elt [a-zA-Z0-9]
って、何かもっと短いパターンに置き換えられないのかな?
って、何かもっと短いパターンに置き換えられないのかな?
275デフォルトの名無しさん
2022/05/26(木) 13:51:27.22ID:Nn08GFXz276デフォルトの名無しさん
2022/05/26(木) 14:03:59.49ID:Ax+O2qu3 >>274
/S
/S
277デフォルトの名無しさん
2022/05/26(木) 14:08:45.47ID:gYa8SY15278デフォルトの名無しさん
2022/05/26(木) 14:26:21.96ID:SI03/myz 結局太古からの文字クラスが役に立つよな
279デフォルトの名無しさん
2022/05/26(木) 14:57:41.65ID:0Pd9G99m 5ch.net
2345.com
2345.com
280デフォルトの名無しさん
2022/05/26(木) 19:34:14.75ID:DerQuI+6 8823
281デフォルトの名無しさん
2022/06/15(水) 16:12:07.21ID:D17rKkfp Pythonで、下記のような仕組みを作りたいと思っています。
1 テキストを入力する。
2 あらかじめ用意してある複数の正規表現のパターンでテキストを検索し、
それぞれのパターンにマッチする部分のテキストを色分けする。
3 それぞれの色ごとに、別々の処理をする。
こう言う表示をするためのフロントエンドというか、ライブラリというか、
そう言うものはないでしょうか。
例えば、VBAなら、エクセルやWordの文字プロパティを操作すればできると思うのですが、
そう言うもののPython版というか…
1 テキストを入力する。
2 あらかじめ用意してある複数の正規表現のパターンでテキストを検索し、
それぞれのパターンにマッチする部分のテキストを色分けする。
3 それぞれの色ごとに、別々の処理をする。
こう言う表示をするためのフロントエンドというか、ライブラリというか、
そう言うものはないでしょうか。
例えば、VBAなら、エクセルやWordの文字プロパティを操作すればできると思うのですが、
そう言うもののPython版というか…
282デフォルトの名無しさん
2022/06/15(水) 17:05:28.57ID:GqhFDJ5g >>281
スレチ
スレチ
283デフォルトの名無しさん
2022/06/15(水) 20:56:26.63ID:bRSTMa0S こういうの不思議なんだけど、
仕組みを作りたいと思っていて、ライブラリやフレームワークすら選べてないのに、
なんで使用言語は決まってるんだろうか
仕組みを作りたいと思っていて、ライブラリやフレームワークすら選べてないのに、
なんで使用言語は決まってるんだろうか
284デフォルトの名無しさん
2022/06/15(水) 21:12:53.05ID:74xVOU49 そのライブラリはlispとprologとVHDLしかありませんって言われたら困るし
285デフォルトの名無しさん
2022/06/15(水) 21:17:39.12ID:bRSTMa0S そしたらその言語選ぶだけじゃないかな
286デフォルトの名無しさん
2022/06/16(木) 02:58:48.52ID:5RJuUFJv JSで作ってブラウザ上で動かすのがよさそう
287デフォルトの名無しさん
2022/06/24(金) 15:59:53.62ID:P24pDyi3 ●Regular Expressionの使用環境
python3
●検索か置換か?
検索
●説明
START~次のSTARTの直前までをマッチングさせたい
START含む行から文字列足して行けば同じ事は出来るんですが正規表現ではどのように書くのか分からないのでお願いします
●対象データ
START 1: abcd
hoge
fuga
START 2: efgh
hoge hoge
fuga fuga
piyo piyo
●希望する結果
START 1: abcd\nhoge\nfuga
python3
●検索か置換か?
検索
●説明
START~次のSTARTの直前までをマッチングさせたい
START含む行から文字列足して行けば同じ事は出来るんですが正規表現ではどのように書くのか分からないのでお願いします
●対象データ
START 1: abcd
hoge
fuga
START 2: efgh
hoge hoge
fuga fuga
piyo piyo
●希望する結果
START 1: abcd\nhoge\nfuga
288デフォルトの名無しさん
2022/06/24(金) 16:36:46.31ID:ECcLc/fl >>287
START(?:(?!START)[\S\s])*
START(?:(?!START)[\S\s])*
289デフォルトの名無しさん
2022/06/24(金) 16:39:49.07ID:P24pDyi3290デフォルトの名無しさん
2022/06/24(金) 18:26:54.64ID:0z9KCe6G template<>引数にはclassでない定数リテラルを指定できるのでtypenameのほうが名称としてしっくりくる
291デフォルトの名無しさん
2022/06/25(土) 08:38:53.00ID:hlZoB8IO Onigmoの非包含オペレータのバグFixが来た
Fix absence operator #163
https://github.com/k-takata/Onigmo/pull/163
こういうのをサラっと直してしまう人はカッコイイね、nomotoさんありがとう!
Fix absence operator #163
https://github.com/k-takata/Onigmo/pull/163
こういうのをサラっと直してしまう人はカッコイイね、nomotoさんありがとう!
292デフォルトの名無しさん
2022/06/25(土) 10:59:37.90ID:23CjKpU2293デフォルトの名無しさん
2022/06/28(火) 22:14:32.48ID:r8H2D3+U294デフォルトの名無しさん
2022/06/30(木) 19:21:01.41ID:EErfRwVa ●Regular Expressionの使用環境
python3
●検索か置換か?
検索
●説明
ErrorもしくはwarnもしくはInfoから始まり(CODE-xxx)で終わる最短の文字列を抜き出したいんですが
(Error|Warn|info):.*?\(\w+-\d+\)のように最短マッチを使っても1番最初のErrorから最後の(CODE-xxx)までが
マッチしてしまいます
●対象データ
Error: hoge
hoge
Warn: fuga
fuga
fuga
Info: hoge
fuga fuga (CODE-003)
●希望する結果
Info: hoge\n fuga fuga (CODE-003)
python3
●検索か置換か?
検索
●説明
ErrorもしくはwarnもしくはInfoから始まり(CODE-xxx)で終わる最短の文字列を抜き出したいんですが
(Error|Warn|info):.*?\(\w+-\d+\)のように最短マッチを使っても1番最初のErrorから最後の(CODE-xxx)までが
マッチしてしまいます
●対象データ
Error: hoge
hoge
Warn: fuga
fuga
fuga
Info: hoge
fuga fuga (CODE-003)
●希望する結果
Info: hoge\n fuga fuga (CODE-003)
295デフォルトの名無しさん
2022/06/30(木) 19:55:03.39ID:5rlmwso+ ^(?:Error|Warn|Info)(?~^Error|^Warn|^Info)\(CODE-\d++\)
296デフォルトの名無しさん
2022/06/30(木) 20:03:45.67ID:VljocFtJ >>294
msg_type_re = r"(?:(?:Warn|Info|Error):)"
print(re.findall(rf"{msg_type_re}(?:(?!{msg_type_re}).)*?\(CODE-\d+\)", s, flags=re.S))
msg_type_re = r"(?:(?:Warn|Info|Error):)"
print(re.findall(rf"{msg_type_re}(?:(?!{msg_type_re}).)*?\(CODE-\d+\)", s, flags=re.S))
297デフォルトの名無しさん
2022/06/30(木) 20:43:19.23ID:WhOCvrbe ^(?:Error|Warn|Info):.*(?:\n\ \ .*)*?\(CODE-\d+\)
https://regex101.com/r/h3PLIu/1#TKStH49zfF1UDOMNbfx1RWny
https://regex101.com/r/h3PLIu/1#TKStH49zfF1UDOMNbfx1RWny
298デフォルトの名無しさん
2022/07/01(金) 08:10:56.97ID:FKzEqydA 秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
↑の文字列を、置換で、
「秋葉原店,東京都千代田区外神田4丁目3-3」
と成形したいです。
思うに、
検索に、「店~~~~~~東京都」
置換に、「,」
とすれば出来そうですが、
「~~~~~~」には何を入れればよいでしょうか?
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
↑の文字列を、置換で、
「秋葉原店,東京都千代田区外神田4丁目3-3」
と成形したいです。
思うに、
検索に、「店~~~~~~東京都」
置換に、「,」
とすれば出来そうですが、
「~~~~~~」には何を入れればよいでしょうか?
299298
2022/07/01(金) 08:20:24.06ID:FKzEqydA ようは、
「店」と「東京都」の間にあれば、改行を含み、どんな文字列が何個はいろうが、「,」に変えたいのです。
よろしくお願いします。
「店」と「東京都」の間にあれば、改行を含み、どんな文字列が何個はいろうが、「,」に変えたいのです。
よろしくお願いします。
300デフォルトの名無しさん
2022/07/01(金) 08:32:58.06ID:fIXdHuhM テンプレガン無視するな
ここはお前の為の便利屋じゃねぇよ
ここはお前の為の便利屋じゃねぇよ
301298様専用の便利屋
2022/07/01(金) 08:56:54.62ID:6Nj9t6DP 環境を言わない質問にはオーソドックスな正規表現で答えれば良いと思う
検索
(店)[\s\S]*(東京都)
置換
$1,$2
検索
(店)[\s\S]*(東京都)
置換
$1,$2
302298
2022/07/01(金) 17:16:41.56ID:FKzEqydA303デフォルトの名無しさん
2022/07/01(金) 17:18:10.65ID:wWlIpSvA 意地でもテンプレは使わない
304デフォルトの名無しさん
2022/07/01(金) 17:27:00.65ID:iqig0nNh スルーされにくいテンプレだから
スルーされてもいいんでしょう
スルーされてもいいんでしょう
305298
2022/07/01(金) 17:28:06.12ID:FKzEqydA306298
2022/07/01(金) 17:33:49.42ID:FKzEqydA >>303-304
すみません。 テンプレで質問すると、↓になります。
●Regular Expressionの使用環境
wzエディター10 64bit
●検索か置換か?
置換
●対象データ
秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
●希望する結果
秋葉原店,東京都千代田区外神田4丁目3-3
すみません。 テンプレで質問すると、↓になります。
●Regular Expressionの使用環境
wzエディター10 64bit
●検索か置換か?
置換
●対象データ
秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
●希望する結果
秋葉原店,東京都千代田区外神田4丁目3-3
307デフォルトの名無しさん
2022/07/01(金) 17:34:03.71ID:C/EjaQqR 別のエディタなりsed使え
308デフォルトの名無しさん
2022/07/01(金) 17:48:08.39ID:iqig0nNh309298
2022/07/01(金) 17:51:33.51ID:FKzEqydA >>308
ありがとうございます。しかしダメでした。
ありがとうございます。しかしダメでした。
310298
2022/07/01(金) 17:53:57.09ID:FKzEqydA しかし、
(.+店)[\s\S]*
ここまで削ると食いついてきます。
(.+店)[\s\S]*
ここまで削ると食いついてきます。
311デフォルトの名無しさん
2022/07/01(金) 17:58:53.83ID:Dqsnfi22 複数行な時点で環境限られるよね
312298
2022/07/01(金) 17:59:18.72ID:FKzEqydA ちなみに、Notepad++、Meryどちらも無料ですが、インストールするとするとどちらがよいでしょうか?
313298
2022/07/01(金) 18:08:28.54ID:FKzEqydA ちなみに、Notepad++、Meryどちらも無料ですが、インストールするとすると正規表現的にはどちらがよいでしょうか?
314デフォルトの名無しさん
2022/07/01(金) 18:09:36.54ID:C/EjaQqR (?<=店)[^〒]*?〒\d{3}-\d{4}\s++
,
キャプチャする必要無くね?
対象データの例が悪い
他に何件もあって〒が無い場合があったりすると誤マッチするはず
,
キャプチャする必要無くね?
対象データの例が悪い
他に何件もあって〒が無い場合があったりすると誤マッチするはず
315298
2022/07/01(金) 18:15:22.87ID:FKzEqydA >>314
ありがとうございます。しかし、 (?<=店) これにすら食いつきません。
ありがとうございます。しかし、 (?<=店) これにすら食いつきません。
316298
2022/07/01(金) 18:58:55.44ID:FKzEqydA Notepad++をインストールしました。
で、やりたいことは、
https://www.donki.com/store/shop_list.php?bsns=&pref=13
ここから、べーっとマウスでコピペして、
Notepad++に貼り付けて、店舗名,住所のcsvファイルを作りたいのです。
で、やりたいことは、
https://www.donki.com/store/shop_list.php?bsns=&pref=13
ここから、べーっとマウスでコピペして、
Notepad++に貼り付けて、店舗名,住所のcsvファイルを作りたいのです。
317298
2022/07/01(金) 19:04:57.22ID:FKzEqydA (?<=店)[^〒]*?〒\d{3}-\d{4}\s++
これでほぼ出来そうです。 ありがとうございます。
これでほぼ出来そうです。 ありがとうございます。
318298
2022/07/01(金) 19:10:09.57ID:FKzEqydA (?<=店)[^〒]*?〒\d{3}-\d{4}\s++
$1,$2
ちなみに、これって$1,$2という変数を使ってますよね?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
この文のドコで代入してるのでしょうか?
$1,$2
ちなみに、これって$1,$2という変数を使ってますよね?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
この文のドコで代入してるのでしょうか?
319デフォルトの名無しさん
2022/07/01(金) 19:16:15.59ID:TWCq9rfx テンプレをヤイヤイいうだけの奴わろたわw
320デフォルトの名無しさん
2022/07/01(金) 19:27:43.82ID:omlO1tMt ページからならjsでやったら?って感じの話しだな
https://pastebin.com/M6LqV15b
https://pastebin.com/M6LqV15b
321デフォルトの名無しさん
2022/07/01(金) 19:30:02.45ID:23LeTIBQ xy問題
322元 298様専用の便利屋
2022/07/01(金) 19:51:17.10ID:6Nj9t6DP 住所からアニメイトの同志だと思いご協力させて頂きましたがアニメイトではなくドンキだと分かったので
すみませんがこれ以上ついて行くことは出来ません・・ 短い間でしたがありがとうございました、さよなら
すみませんがこれ以上ついて行くことは出来ません・・ 短い間でしたがありがとうございました、さよなら
323298
2022/07/01(金) 21:06:43.33ID:FKzEqydA >>322
どうもです。 了解しました。
.+だと文字が何個あってもいいよ、です。
こういうので、
文字でも記号でも改行でも何個あってもいいよ、はないでしょうか?
あるとすれば、
店「」+住所
を、
,
に置換すればいいだけの話なんだけど。
どうもです。 了解しました。
.+だと文字が何個あってもいいよ、です。
こういうので、
文字でも記号でも改行でも何個あってもいいよ、はないでしょうか?
あるとすれば、
店「」+住所
を、
,
に置換すればいいだけの話なんだけど。
324デフォルトの名無しさん
2022/07/01(金) 22:01:19.33ID:TkUsKSE8 .(ピリオド)は改行コードを除く任意の1文字にマッチする
つまり.*や.+だと改行のところでストップするということ
つまり.*や.+だと改行のところでストップするということ
325デフォルトの名無しさん
2022/07/01(金) 22:28:36.91ID:oUsXu5GC ピリオドはmオプションつけると改行にもマッチするやで
mオプションがついてるかは環境と指定したオプションによるやで
mオプションがついてるかは環境と指定したオプションによるやで
326デフォルトの名無しさん
2022/07/01(金) 22:36:48.49ID:TkUsKSE8 mオプションじゃなくてsオプションなのでは?
327デフォルトの名無しさん
2022/07/01(金) 22:50:04.22ID:oUsXu5GC 調べてきた
mオプションはRuby、oniguruma系、Meryはこれのはず
sオプションなのはPerl系
Notepad++/SciTEは専用オプションがある
らしい、やってみて確かめたほうがいいね
mオプションはRuby、oniguruma系、Meryはこれのはず
sオプションなのはPerl系
Notepad++/SciTEは専用オプションがある
らしい、やってみて確かめたほうがいいね
328298
2022/07/01(金) 23:07:58.13ID:FKzEqydA ありがとうございます。では、
店.+東京都
に、mオプションを付けるとするとどう書けばいいのですか?
↓にはそれ系の記載がありません。
https://murashun.jp/article/programming/regular-expression.html
https://userweb.mnet.ne.jp/nakama/
店.+東京都
に、mオプションを付けるとするとどう書けばいいのですか?
↓にはそれ系の記載がありません。
https://murashun.jp/article/programming/regular-expression.html
https://userweb.mnet.ne.jp/nakama/
329デフォルトの名無しさん
2022/07/01(金) 23:25:18.67ID:oUsXu5GC Notepad++のことならGUIのダイアログの左下の右に「.は改行と一致」てのがあるじゃろ
330298
2022/07/01(金) 23:40:21.16ID:FKzEqydA >>329
ありがとうございます。Notepad++で、「.は改行と一致」にチェックをいれて、
店.+東京都
,
で、次を検索でポチると、
最初の東京都ではなく、最後の東京都、つまりほぼ全文を選択してしまいます。
ありがとうございます。Notepad++で、「.は改行と一致」にチェックをいれて、
店.+東京都
,
で、次を検索でポチると、
最初の東京都ではなく、最後の東京都、つまりほぼ全文を選択してしまいます。
331デフォルトの名無しさん
2022/07/02(土) 00:04:51.39ID:BdV6t7uW 正規表現の基本は強欲
なるべく長い文字列にマッチしようとする
なるべく長い文字列にマッチしようとする
332デフォルトの名無しさん
2022/07/02(土) 09:05:29.52ID:mrmEg2+h > 基本は強欲
20年このスレにいて初めて知りました
20年このスレにいて初めて知りました
333デフォルトの名無しさん
2022/07/02(土) 09:58:17.51ID:At3W7bIA 20年正規表現使ってて強欲すぎて困ったことないの?
※ 用語として強欲はあまりいい意味には使わないから個人的には貧欲の方がいいなぁ
※ 用語として強欲はあまりいい意味には使わないから個人的には貧欲の方がいいなぁ
334デフォルトの名無しさん
2022/07/02(土) 10:08:22.29ID:N6Y3zR8M ひんよく? 貧
どんよく 貪欲
どんよく 貪欲
335デフォルトの名無しさん
2022/07/02(土) 10:24:47.75ID:ophljRqK そんなとっくに概出のこと言われても困ります
336デフォルトの名無しさん
2022/07/02(土) 12:38:50.86ID:mrmEg2+h 貧欲の動作は考えてみればすごく非効率な気がしますね
10万文字の文章に対して「.*」を使ったら10万文字の末尾まで食ってから戻ってきますからね
10万文字の文章に対して「.*」を使ったら10万文字の末尾まで食ってから戻ってきますからね
337デフォルトの名無しさん
2022/07/02(土) 13:18:37.74ID:At3W7bIA >>334
すまん、素で間違ってたわ... orz
すまん、素で間違ってたわ... orz
338デフォルトの名無しさん
2022/07/02(土) 15:23:26.16ID:+K04BJMF *+ 強欲 ++ 最大一致させたらバックトラックしない
* 欲張り + 最大一致させた後、残りの式が不一致になったらバックトラックする
*? 無欲 +? 欲張りと逆。最小一致後にバックトラック
バックトラック
条件を満たす範囲で探索
・欲張りは1文字放棄
・無欲は1文字追加
して試行する
* 欲張り + 最大一致させた後、残りの式が不一致になったらバックトラックする
*? 無欲 +? 欲張りと逆。最小一致後にバックトラック
バックトラック
条件を満たす範囲で探索
・欲張りは1文字放棄
・無欲は1文字追加
して試行する
339298
2022/07/02(土) 18:24:54.77ID:rrBNdWeF てか、↓の文法的解説をできる方はこのスレにはいないのでしょうか?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
340デフォルトの名無しさん
2022/07/02(土) 18:51:12.29ID:+K04BJMF (?<=店) 戻り読み。式(店)と次の文字の「間」の位置に一致。abcに対し(?<=ab)ならbとcの間に一致する。アンカー(^$)と同様
[^〒]*? 「〒」以外の文字に最小一致(無欲)
〒 「〒」の文字
\d{3}-\d{4} 「数字3つ」「-」「数字4つ」
\s++ 「\s」に最大一致(強欲)
[^〒]*? 「〒」以外の文字に最小一致(無欲)
〒 「〒」の文字
\d{3}-\d{4} 「数字3つ」「-」「数字4つ」
\s++ 「\s」に最大一致(強欲)
341298
2022/07/02(土) 18:58:50.57ID:rrBNdWeF342デフォルトの名無しさん
2022/07/02(土) 19:30:02.98ID:UTWJe5+B [^〒]*?〒は最小量指定子使わないで、[^〒]*〒でよいのでは?
この*は0回以上の「〒以外」の文字にマッチだから、貪欲であっても貪欲でなくても、結局一番初めに出てくる「〒」手前までしかマッチできない。
この*は0回以上の「〒以外」の文字にマッチだから、貪欲であっても貪欲でなくても、結局一番初めに出てくる「〒」手前までしかマッチできない。
343デフォルトの名無しさん
2022/07/02(土) 19:38:03.70ID:UTWJe5+B344298
2022/07/02(土) 19:41:17.46ID:rrBNdWeF てか、不思議なことに、
1、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ ,
2、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ $1,$2
で、同じ結果が出るんです
1、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ ,
2、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ $1,$2
で、同じ結果が出るんです
345298
2022/07/02(土) 19:42:31.78ID:rrBNdWeF つまり、2は文法的に間違ってる、ってことですかね?
346298
2022/07/02(土) 19:45:54.43ID:rrBNdWeF てか、Notepad++はカシコイから、
置換文字列→ $1,$2
を、
置換文字列→ ,
と、置き換えて処理してるんですかね?
置換文字列→ $1,$2
を、
置換文字列→ ,
と、置き換えて処理してるんですかね?
347デフォルトの名無しさん
2022/07/02(土) 19:46:39.19ID:+K04BJMF 面白いから見守るわw
348デフォルトの名無しさん
2022/07/02(土) 19:57:48.35ID:+K04BJMF349デフォルトの名無しさん
2022/07/02(土) 21:11:04.97ID:FJKEiIOc >>348
確かにマッチしない場合にバックトラックの発生を抑えるために強欲にするのはありだと思う。
ただ、PCREとかだと[^〒]*〒の場合、Auto Processが動作して勝手に強欲化するから書かなくてもいいはず。
今回のEditorはしらんけど。
確かにマッチしない場合にバックトラックの発生を抑えるために強欲にするのはありだと思う。
ただ、PCREとかだと[^〒]*〒の場合、Auto Processが動作して勝手に強欲化するから書かなくてもいいはず。
今回のEditorはしらんけど。
350デフォルトの名無しさん
2022/07/03(日) 11:46:22.30ID:DiSdIFQe 初心者のうちは強欲は使わないほうがいい気がする
そもそも鈍器のページから店名と住所を取り出すだけの正規表現を書く場合にキャプチャしない書き方や
バックトラックを抑制する書き方をする必要はない
「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
そもそも鈍器のページから店名と住所を取り出すだけの正規表現を書く場合にキャプチャしない書き方や
バックトラックを抑制する書き方をする必要はない
「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
351デフォルトの名無しさん
2022/07/03(日) 12:00:27.48ID:J9cIk4yD 貪欲禁止って*や+を使うなってことけ?
352デフォルトの名無しさん
2022/07/03(日) 12:44:06.06ID:HH+h1Cia possessiveのことだろ
353デフォルトの名無しさん
2022/07/03(日) 13:50:59.22ID:J9cIk4yD 手足をもぎ取られた気分や…
354デフォルトの名無しさん
2022/07/03(日) 14:32:42.77ID:nkFK6+7O355デフォルトの名無しさん
2022/07/03(日) 15:36:23.88ID:ZjFQgG61 > 使わないほうがいい気がする
「気がする」でついつい無駄コード書いちゃう強迫性不安障害の人かな?
> 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
底辺コーダーが良く使う言い訳
(俺に分かりやすい) 平易なやり方しか認めない!(`・ω・´)キリッ
「気がする」でついつい無駄コード書いちゃう強迫性不安障害の人かな?
> 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
底辺コーダーが良く使う言い訳
(俺に分かりやすい) 平易なやり方しか認めない!(`・ω・´)キリッ
356デフォルトの名無しさん
2022/07/03(日) 17:56:24.35ID:DiSdIFQe 正規表現を考えるときには複雑な情報を単純化する作業が必要になるんだがそういう意味では質問者のほうが才能がある
「店」と「東京都」という2つのキーワードさえ見つけられれば目的を果たせることを見抜いていた
それに対して回答者たちは単純だった依頼を複雑化させたあげく質問者を困らせ続けた
戻り読みを正規表現の先頭に置いてキャプチャを回避することが本当に処理量の軽減になっているのかも疑問
鈍器のページからテキストエディタで店名と住所を取り出すだけの作業に正規表現の高速化を考えるのはもはやコント
君らには問題を単純化する能力が足りないからその点を改善せよ
「店」と「東京都」という2つのキーワードさえ見つけられれば目的を果たせることを見抜いていた
それに対して回答者たちは単純だった依頼を複雑化させたあげく質問者を困らせ続けた
戻り読みを正規表現の先頭に置いてキャプチャを回避することが本当に処理量の軽減になっているのかも疑問
鈍器のページからテキストエディタで店名と住所を取り出すだけの作業に正規表現の高速化を考えるのはもはやコント
君らには問題を単純化する能力が足りないからその点を改善せよ
357デフォルトの名無しさん
2022/07/03(日) 18:00:06.22ID:ZjFQgG61358デフォルトの名無しさん
2022/07/03(日) 18:09:59.22ID:hqJYlR9w359デフォルトの名無しさん
2022/07/03(日) 18:20:19.30ID:K4HcDkkQ どうしようもないケースを除いて「東京都」なんてのをハードコーディングするのは筋が悪いと言わざるを得ない
360デフォルトの名無しさん
2022/07/03(日) 18:23:09.07ID:BZUl5BA7 それはともかく、キャプチャグループが無いのに気づいてないのを指摘してあげろよ
$1,$2に対応するものがないので両方ともヌルになってる
$1,$2に対応するものがないので両方ともヌルになってる
361デフォルトの名無しさん
2022/07/03(日) 18:34:54.70ID:BC52HWP8362デフォルトの名無しさん
2022/07/03(日) 19:05:13.97ID:ur8aI9T4363デフォルトの名無しさん
2022/07/03(日) 19:53:34.01ID:RqS+SurZ 文章からして発達障害とかそのボーダーでしょ
鉄道マニアとか特撮マニアに多いタイプのガイジ
鉄道マニアとか特撮マニアに多いタイプのガイジ
364デフォルトの名無しさん
2022/07/03(日) 19:57:25.26ID:THTbKALg365デフォルトの名無しさん
2022/07/03(日) 19:58:39.99ID:BZUl5BA7 351は論外だろ
強欲を貪欲に変えてるし
強欲を貪欲に変えてるし
366デフォルトの名無しさん
2022/07/03(日) 20:14:59.04ID:Qz5VC9/y >>365
正規表現のコンテキストにおいて、強欲と貪欲にどんな違いがあるか教えて
正規表現のコンテキストにおいて、強欲と貪欲にどんな違いがあるか教えて
367デフォルトの名無しさん
2022/07/03(日) 20:15:30.32ID:nkFK6+7O368デフォルトの名無しさん
2022/07/03(日) 20:29:11.54ID:BZUl5BA7 言葉尻を捕らえても意味ないぞ
+,*を強欲とは言わん
+,*を強欲とは言わん
369デフォルトの名無しさん
2022/07/03(日) 20:37:36.27ID:BZUl5BA7 greedyは貪欲(欲張り)
Possessiveが強欲
Possessiveが強欲
370デフォルトの名無しさん
2022/07/03(日) 20:38:07.23ID:7Xq6ZsUF 「強欲」と「最長一致」が別物ってことすら理解しないまま変な自説を垂れ流してることに気付いてないんだろうなあ
332あたりの皮肉もまったく通じてないみたいだし
332あたりの皮肉もまったく通じてないみたいだし
371デフォルトの名無しさん
2022/07/03(日) 20:38:53.41ID:BZUl5BA7 あれ、>>352で指摘されてるじゃん
372デフォルトの名無しさん
2022/07/03(日) 20:39:33.16ID:nkFK6+7O >>368
正規表現を理解してない自慢しなくていいから
正規表現を理解してない自慢しなくていいから
373デフォルトの名無しさん
2022/07/03(日) 20:45:47.16ID:nkFK6+7O >>369
日本語に於ける欲深さは強欲>貪欲ってこと?
日本語に於ける欲深さは強欲>貪欲ってこと?
374デフォルトの名無しさん
2022/07/03(日) 20:48:18.70ID:BZUl5BA7 具体例を挙げないとダメなのか?
ググることさえしないのか?
強欲の表現は
?+
*+
++
{n}+
{n,}+
{n,m}+
ググることさえしないのか?
強欲の表現は
?+
*+
++
{n}+
{n,}+
{n,m}+
375デフォルトの名無しさん
2022/07/03(日) 20:51:34.49ID:nkFK6+7O 納得いった
possessiveを強欲とした誤訳に基づく誤解だな
possessiveを強欲だと捉えてる人は331を誤りだと捉える、
翻ってgreedy, possessiveで理解してる人は貪欲と強欲が変わって何がおかしいのかすらわからない
possessiveを強欲とした誤訳に基づく誤解だな
possessiveを強欲だと捉えてる人は331を誤りだと捉える、
翻ってgreedy, possessiveで理解してる人は貪欲と強欲が変わって何がおかしいのかすらわからない
376デフォルトの名無しさん
2022/07/03(日) 20:53:24.55ID:DiSdIFQe 単純な話が複雑になってきたがこういうのが良くないんだ、プログラミングや正規表現をするなら特にな
単純な話になる方向にもっていくことを考えるべし
強欲の話を複雑化しようとしてる奴を見ればアホに見えるだろう、誰とは言わんが
単純な話になる方向にもっていくことを考えるべし
強欲の話を複雑化しようとしてる奴を見ればアホに見えるだろう、誰とは言わんが
377デフォルトの名無しさん
2022/07/03(日) 20:55:43.09ID:u4Kf+yAq >>369
それどこのQiitaに書いてあったん?w
それどこのQiitaに書いてあったん?w
378デフォルトの名無しさん
2022/07/03(日) 21:00:18.88ID:BZUl5BA7 正規表現では強欲といえば何を想起するのかってのは常識だよ
英語自慢はいいけど日本語も勉強してね
英語自慢はいいけど日本語も勉強してね
379デフォルトの名無しさん
2022/07/03(日) 21:04:50.41ID:gASOhw8R 鬼車 欲張り(greedy)/無欲(reluctant)/強欲(possessive)
詳説正規表現第2版 欲張り/非欲張り/強欲量指定子
詳説正規表現第3版 欲張り(greedy)/控え目(lazy)/絶対最大量指定子(possessive)
入門正規表現 欲張り/控えめ/独占的
貪欲???
詳説正規表現第2版 欲張り/非欲張り/強欲量指定子
詳説正規表現第3版 欲張り(greedy)/控え目(lazy)/絶対最大量指定子(possessive)
入門正規表現 欲張り/控えめ/独占的
貪欲???
380デフォルトの名無しさん
2022/07/03(日) 21:06:06.84ID:nkFK6+7O 常識って偏見の塊でしょ知ってる
381デフォルトの名無しさん
2022/07/03(日) 21:09:06.26ID:BZUl5BA7 じゃあ、強欲でgreedyを指す日本語の解説をどこか例示してくれ
382デフォルトの名無しさん
2022/07/03(日) 21:15:22.52ID:nkFK6+7O そんなもの不要でしょ
国語事典に於いては強欲と貪欲に序列はない
英和辞典に於いてはgreedyは強欲ならびに貪欲
和英辞典に於いては強欲も貪欲もgreedy
むしろpossessiveの方こそ欲張りとか独占的って意味になる
そういう意味では入門正規表現の表記が正しいと言えるかもね
国語事典に於いては強欲と貪欲に序列はない
英和辞典に於いてはgreedyは強欲ならびに貪欲
和英辞典に於いては強欲も貪欲もgreedy
むしろpossessiveの方こそ欲張りとか独占的って意味になる
そういう意味では入門正規表現の表記が正しいと言えるかもね
383デフォルトの名無しさん
2022/07/03(日) 21:20:26.16ID:BZUl5BA7 正規表現に関してはどっちも同じ、正規表現を理解してない
と言った口で正規表現の専門用語じゃなくて日本語として云々と言うか?
強情ッ張りにも程があるな
と言った口で正規表現の専門用語じゃなくて日本語として云々と言うか?
強情ッ張りにも程があるな
384デフォルトの名無しさん
2022/07/03(日) 21:32:22.16ID:nkFK6+7O >>383
ヘルプで学んだから強欲とか貪欲とか書かれてなかったしね
greedyだのlazyだの辞書引きながら覚えた身からすりゃ貪欲も強欲も同じ意味なのもわかるだろ?
強欲と言えば何を想起するかって正規表現の常識はどこで学んだの?原書とか読まないタイプ?
ヘルプで学んだから強欲とか貪欲とか書かれてなかったしね
greedyだのlazyだの辞書引きながら覚えた身からすりゃ貪欲も強欲も同じ意味なのもわかるだろ?
強欲と言えば何を想起するかって正規表現の常識はどこで学んだの?原書とか読まないタイプ?
385デフォルトの名無しさん
2022/07/03(日) 21:33:16.77ID:JPaw0m1w386デフォルトの名無しさん
2022/07/03(日) 21:37:15.00ID:JPaw0m1w possessiveって「独占欲が強い」って意味だから
含意も伝わる入門正規表現の「独占的」が一番いい訳だと思う
含意も伝わる入門正規表現の「独占的」が一番いい訳だと思う
387デフォルトの名無しさん
2022/07/03(日) 21:38:14.39ID:BZUl5BA7 強欲というのを専門用語にしてるわけだから誤訳と言っても仕方ないだろ
誤訳だから俺だけは強欲と貪欲は同じ取り扱いをするよで世間で通じるとでも思ってるのか
誤訳だから俺だけは強欲と貪欲は同じ取り扱いをするよで世間で通じるとでも思ってるのか
388デフォルトの名無しさん
2022/07/03(日) 21:39:37.19ID:BZUl5BA7389デフォルトの名無しさん
2022/07/03(日) 21:42:08.05ID:THTbKALg lookaheadの「先読み」はいいけど、
lookbehindの「後読み」も悪しき訳だよね
「戻り読み」の方が方向が理解しやすい
lookbehindの「後読み」も悪しき訳だよね
「戻り読み」の方が方向が理解しやすい
390デフォルトの名無しさん
2022/07/03(日) 21:55:07.74ID:B7Hb5nx0 possessiveが強欲と訳されてるのは、たぶんJava界隈で「possessive (very greedy)」と表記されていたのが「強欲」と訳されて、『詳説正規表現第2版』でもその訳が採用されて広まったのかな
個人的にはうまい訳だと思うけど、英語から入った人が混乱するのは理解できる
個人的にはうまい訳だと思うけど、英語から入った人が混乱するのは理解できる
391デフォルトの名無しさん
2022/07/03(日) 22:44:39.24ID:R6EXpQG5 >>379
正規表現技術入門 欲張り/控え目/強欲
正規表現辞典改訂新版 最長一致(longest match)、欲張り、貪欲(greedy)/最短一致(shortest match)、無欲(reluctant)/強欲(possessive)
正規表現技術入門 欲張り/控え目/強欲
正規表現辞典改訂新版 最長一致(longest match)、欲張り、貪欲(greedy)/最短一致(shortest match)、無欲(reluctant)/強欲(possessive)
392デフォルトの名無しさん
2022/07/03(日) 22:55:10.77ID:hD5VDdvY 最長最短でいいわ
393デフォルトの名無しさん
2022/07/03(日) 23:12:37.67ID:RqS+SurZ 各日本語名は鬼雲方式でいいわ
ttps://github.com/k-takata/Onigmo/blob/master/doc/RE.ja
ttps://github.com/k-takata/Onigmo/blob/master/doc/RE.ja
394デフォルトの名無しさん
2022/07/03(日) 23:31:21.62ID:C1pvOjRy lookahead 未来読み、lookbehind 過去読みなら、分かりやすかった
先読み・後読みの、先・後が分からない
先読み・後読みの、先・後が分からない
395デフォルトの名無しさん
2022/07/03(日) 23:46:52.53ID:C1pvOjRy greedy, reluctant はよく見るけど、
possessive 強欲は知らない
絶対最大量指定子なら見た事がある
possessive 強欲は知らない
絶対最大量指定子なら見た事がある
396デフォルトの名無しさん
2022/07/04(月) 01:04:08.73ID:ILSPAQNd Microsoftとかjavaとか強欲を使ってるね
もし本当に知らないというのなら無知すぎると言わざるをえない
もし本当に知らないというのなら無知すぎると言わざるをえない
397デフォルトの名無しさん
2022/07/04(月) 17:32:20.05ID:ri3Dm2ZG 日本語で正規表現に関して議論するなら知っておいてほしい気はするけど、
訳語を一つ知らないだけで無知とか言わなくても…
例えばperlreは2011年に「強欲な」が「絶対最大量」の表記に変更されているようだし、
触ってきた言語によっては強欲って訳に馴染みが無いのかも
訳語を一つ知らないだけで無知とか言わなくても…
例えばperlreは2011年に「強欲な」が「絶対最大量」の表記に変更されているようだし、
触ってきた言語によっては強欲って訳に馴染みが無いのかも
398デフォルトの名無しさん
2022/07/04(月) 18:06:20.41ID:oo1ug/2U >>388
ストローマン!ストローマンじゃないか!
ストローマン!ストローマンじゃないか!
399デフォルトの名無しさん
2022/07/04(月) 18:31:29.79ID:5WegoFeO possesiveを強欲と呼ぶのは明らかな誤訳だし
greedyと勘違いするリスクも低くないんだから使わないほうがいい
同じようにgreedyを強欲と呼ぶのもリスクあるから避けるべきだね
greedyと勘違いするリスクも低くないんだから使わないほうがいい
同じようにgreedyを強欲と呼ぶのもリスクあるから避けるべきだね
400デフォルトの名無しさん
2022/07/04(月) 19:19:19.95ID:rQV6IDNU perldoc.jpでは「non-greedy」を「非貪欲、貪欲でない」、「non-possessive」を「強欲でない」としていますね
401デフォルトの名無しさん
2022/07/04(月) 20:10:42.89ID:ckHiziij 「ひんよく」の人なら「きょうよく」と読んでしまいそうだしな
「独占的」がベストだという結論ならそれを広めようと思うがどうだろうか?
「独占的」がベストだという結論ならそれを広めようと思うがどうだろうか?
402デフォルトの名無しさん
2022/07/04(月) 20:35:20.72ID:PN4eFOxq 貪婪/勉強、逐歩/独占、占有、独吐
食べきった文字を二度と吐き出さない=獨吐
食べきった文字を二度と吐き出さない=獨吐
403デフォルトの名無しさん
2022/07/04(月) 20:35:46.95ID:4rkDJ26m 強欲: 掴んだら(一致したら)放さない
欲張り: 「なるべく沢山」で一致させる。不一致なら掴んでいた文字を放す
無欲: 条件が一致するまで1文字ずつ追加して最小一致させる
単語の直訳がどうかよりも、欲張り・無欲との関係性や動作(バックトラックの有無)のニュアンスとして強欲の方が適していると思われ
欲張り: 「なるべく沢山」で一致させる。不一致なら掴んでいた文字を放す
無欲: 条件が一致するまで1文字ずつ追加して最小一致させる
単語の直訳がどうかよりも、欲張り・無欲との関係性や動作(バックトラックの有無)のニュアンスとして強欲の方が適していると思われ
404デフォルトの名無しさん
2022/07/04(月) 20:50:18.31ID:oo1ug/2U 強欲からpossessiveを連想するのが難しい以上、
possessiveを強欲とするのが適しているとはとても思えない
possessiveを強欲とするのが適しているとはとても思えない
405デフォルトの名無しさん
2022/07/04(月) 21:21:35.91ID:4rkDJ26m それは英語に「欲張り」と「強欲」のニュアンス違いに相当する言葉が無く
どちらもgreedyになってしまうからpossessiveと置いているだけの話で
逆輸入してあちらさんの言葉に合わせるよりは
より本質的に合った言葉を当て嵌める方が理解しやすいし、訳としても正しい
どちらもgreedyになってしまうからpossessiveと置いているだけの話で
逆輸入してあちらさんの言葉に合わせるよりは
より本質的に合った言葉を当て嵌める方が理解しやすいし、訳としても正しい
406デフォルトの名無しさん
2022/07/04(月) 21:22:02.00ID:5E8qS6xJ いつまでやってんだ?
407デフォルトの名無しさん
2022/07/04(月) 21:26:25.77ID:oo1ug/2U 昔話の欲張り爺さんは強欲爺だろ?
日本語だって欲張りと強欲に序列なんてないだろ
そも強欲は宗教用語だし
日本語だって欲張りと強欲に序列なんてないだろ
そも強欲は宗教用語だし
408デフォルトの名無しさん
2022/07/04(月) 21:29:14.26ID:CMsCi2w4 ?サッカーでボール所有率をポゼッション(Possession)と表現するよ
409デフォルトの名無しさん
2022/07/04(月) 21:42:50.78ID:ckHiziij 正規表現という名前自体も正則表現が正しいとよく言われるが正規表現と呼ばれ続けてるね
一度浸透してしまったら変更するのは容易ではないね
ほとんどの人にとっては強欲か独占的のどちらがいいかなんて「意味の違いなんかどうでもいい!変えるな!」だろうな
独占的 (旧名: 強欲)
というように注釈を付けながら変えるのが理想的だが果たして各方面に受け入れてもらえるのだろうか?
一度浸透してしまったら変更するのは容易ではないね
ほとんどの人にとっては強欲か独占的のどちらがいいかなんて「意味の違いなんかどうでもいい!変えるな!」だろうな
独占的 (旧名: 強欲)
というように注釈を付けながら変えるのが理想的だが果たして各方面に受け入れてもらえるのだろうか?
410デフォルトの名無しさん
2022/07/04(月) 21:51:29.57ID:CMsCi2w4 ネスレはレギュラーコーヒーに戦いを挑んでないみたいだけど、
インスタントコーヒーに取って代わるべくレギュラーソリュブルコーヒー推しだよね
インスタントコーヒーに取って代わるべくレギュラーソリュブルコーヒー推しだよね
411デフォルトの名無しさん
2022/07/04(月) 22:00:36.67ID:sR2pocrJ ネッスルの方がなじみ深い
412デフォルトの名無しさん
2022/07/04(月) 22:06:35.42ID:7wZS5m0B 違いがわかる男の正規表現
413デフォルトの名無しさん
2022/07/04(月) 22:10:57.58ID:at368eXu ポゼッシブを強欲と呼んでる人がいるのこのスレで初めて知ったよ
強欲の英訳はほぼ100%greed/greedyになるから絶対やめた方がいい
強欲の英訳はほぼ100%greed/greedyになるから絶対やめた方がいい
414デフォルトの名無しさん
2022/07/04(月) 22:18:25.27ID:Fzsxp6Q8 >>413
possess v. って単に所有する、っていう意味なのにね
possess v. って単に所有する、っていう意味なのにね
415デフォルトの名無しさん
2022/07/04(月) 23:33:58.60ID:Tw6HV9Rf なにも日常語のpossessiveを強欲と訳しているのではない
「握ること」=「米の球」という誤訳が同じ物🍙を指すことで意訳になるのと同じで、
正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
やたら英訳にこだわっている人は、possessiveという用語に対応するキーワードのひとつである強欲を知らずにgreedyと英訳してしまった無知をごまかしているように見える
「握ること」=「米の球」という誤訳が同じ物🍙を指すことで意訳になるのと同じで、
正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
やたら英訳にこだわっている人は、possessiveという用語に対応するキーワードのひとつである強欲を知らずにgreedyと英訳してしまった無知をごまかしているように見える
416デフォルトの名無しさん
2022/07/05(火) 00:14:37.32ID:Pgzcl5cT >>415
「米の球」を黒焦げに焼いたらtarballになる、まで読んだ
「米の球」を黒焦げに焼いたらtarballになる、まで読んだ
417デフォルトの名無しさん
2022/07/05(火) 10:52:26.63ID:K5Eu4yGw >無知をごまかしているように見える
この人の感受性がおかしいと感じたのは俺だけだろうか、やたら人のことを悪く見ようとしてないか?
知らない人に対する潜在的な恐怖心がこういう発言になるのかな?分からんがみっともないからやめたほうがいい
この人の感受性がおかしいと感じたのは俺だけだろうか、やたら人のことを悪く見ようとしてないか?
知らない人に対する潜在的な恐怖心がこういう発言になるのかな?分からんがみっともないからやめたほうがいい
418デフォルトの名無しさん
2022/07/05(火) 11:08:04.06ID:sc95gC5i 議論は別にすきにしろよと思うが人格否定や揚げ足取りは荒れる元だからやめろ
419デフォルトの名無しさん
2022/07/05(火) 11:41:54.88ID:cG0ybmcU >>417
そらそこは反論を期待して英訳に固執する人を揶揄してわざと悪し様に言ったところだからな、図星だったなら謝るよ
でもまさか本題には一切触れず蛇足だけに突っ込んで人格の否定までして論点をずらすような真似をされるとは思わなかった、よほど気に障ったのだろうか
あ、反論があるなら本題の方をメインで頼むな、他の人に迷惑でみっともないからね
そらそこは反論を期待して英訳に固執する人を揶揄してわざと悪し様に言ったところだからな、図星だったなら謝るよ
でもまさか本題には一切触れず蛇足だけに突っ込んで人格の否定までして論点をずらすような真似をされるとは思わなかった、よほど気に障ったのだろうか
あ、反論があるなら本題の方をメインで頼むな、他の人に迷惑でみっともないからね
420デフォルトの名無しさん
2022/07/05(火) 12:00:26.75ID:364oCHD3 >>416
おっと焼きおにぎりの悪口はそこまでだ
おっと焼きおにぎりの悪口はそこまでだ
421デフォルトの名無しさん
2022/07/05(火) 13:10:32.42ID:/Cj5WPzT 当て身は打撃のことじゃないって言い張る格ゲープレイヤーみたい
422デフォルトの名無しさん
2022/07/05(火) 13:38:26.40ID:K5Eu4yGw その攻撃性と被害妄想的な受け取り方はどうにかならんの?普通に会話すればいいだけだと思うのだが
このレスを読んでも攻撃されてると思うの?
このレスを読んでも攻撃されてると思うの?
423デフォルトの名無しさん
2022/07/05(火) 13:44:47.04ID:SfuXrTgV その精神病を当て擦るような言い方
424デフォルトの名無しさん
2022/07/05(火) 16:42:32.77ID:9eeXBGst >>ID:K5Eu4yGw
議論で熱くなって中傷が混じるのは褒められないことではあるがある程度は容認出来る
おまえは議論の本題に触れもせず、中傷、人格攻撃だけのレス
この違いが分かる?
中傷したいのなら議論の本題に上手く絡めて、やれ
議論で熱くなって中傷が混じるのは褒められないことではあるがある程度は容認出来る
おまえは議論の本題に触れもせず、中傷、人格攻撃だけのレス
この違いが分かる?
中傷したいのなら議論の本題に上手く絡めて、やれ
425デフォルトの名無しさん
2022/07/05(火) 17:00:54.47ID:8BLlx4g8 >>415
>正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
それが問題だよねって話をしてるんでは?
正規表現においてpossessiveのことを強欲と呼ぶのは適切ではないという主張に対する反論にはなってないように見えるけど?
>正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
それが問題だよねって話をしてるんでは?
正規表現においてpossessiveのことを強欲と呼ぶのは適切ではないという主張に対する反論にはなってないように見えるけど?
426デフォルトの名無しさん
2022/07/05(火) 17:21:05.39ID:hw2faXZs ●Regular Expressionの使用環境
サクラエディタ2.3.2.0(bregonig.dll 4.20 with 鬼雲6.2.0)
●検索か置換か?
検索
●説明
\sの結果にUnicodeのスペースは全て含めたいが
Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)は含めたくない。
(UNICODEの改行は厳密にはVTとFFが含まれると思いますが
https://www.unicode.org/standard/reports/tr13/tr13-5.html
できれば今回はVTとFFは例外で改行ではないスペース扱いにしたいです)
●対象データ
UTF-8テキストファイル
小U+0020迫LF(U+000A)
松U+0009本CRLF(U+000D U+000A)
高U+3000田NEL(U+0085)
●希望する結果
半角スペース
水平タブ
全角スペース
※単純に\sで検索すると都合6箇所マッチしてしまうので、
(サクラエディタが改行コード扱いする)Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)を
マッチ対象から除外して3箇所だけにマッチする正規表現が知りたいです。
サクラエディタ2.3.2.0(bregonig.dll 4.20 with 鬼雲6.2.0)
●検索か置換か?
検索
●説明
\sの結果にUnicodeのスペースは全て含めたいが
Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)は含めたくない。
(UNICODEの改行は厳密にはVTとFFが含まれると思いますが
https://www.unicode.org/standard/reports/tr13/tr13-5.html
できれば今回はVTとFFは例外で改行ではないスペース扱いにしたいです)
●対象データ
UTF-8テキストファイル
小U+0020迫LF(U+000A)
松U+0009本CRLF(U+000D U+000A)
高U+3000田NEL(U+0085)
●希望する結果
半角スペース
水平タブ
全角スペース
※単純に\sで検索すると都合6箇所マッチしてしまうので、
(サクラエディタが改行コード扱いする)Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)を
マッチ対象から除外して3箇所だけにマッチする正規表現が知りたいです。
427デフォルトの名無しさん
2022/07/05(火) 17:22:13.40ID:9eeXBGst > possessiveのことを強欲と呼ぶ
飽く迄、英語をベースに日本語へ訳したいワケね
そういう解釈をしてるからおかしく感じるのだろう
日本語の欲張りに対しての強欲に相当する語が無いから英語ではpossessiveを充てている
英語側の単語が貧窮な都合だ
飽く迄、英語をベースに日本語へ訳したいワケね
そういう解釈をしてるからおかしく感じるのだろう
日本語の欲張りに対しての強欲に相当する語が無いから英語ではpossessiveを充てている
英語側の単語が貧窮な都合だ
428デフォルトの名無しさん
2022/07/05(火) 17:43:33.84ID:9eeXBGst429デフォルトの名無しさん
2022/07/05(火) 17:56:41.32ID:4sOf+wSV >>427
日本語も欲張りと強欲はどちらも欲深いことを言っているだけで、
欲の深さを示してはいないよ
近いと近距離、どっちの距離が離れているかを示せないないのと同じ
さらに言えば
逆に英語では明確に区別された語(greedy?|possessive)を、
明確に区別できない語([貪|強]欲)に置きかえたのが問題
直訳・意訳ですらない置きかえ
日本語に対して英語を充てたとそう勘違いしてる?
日本語も欲張りと強欲はどちらも欲深いことを言っているだけで、
欲の深さを示してはいないよ
近いと近距離、どっちの距離が離れているかを示せないないのと同じ
さらに言えば
逆に英語では明確に区別された語(greedy?|possessive)を、
明確に区別できない語([貪|強]欲)に置きかえたのが問題
直訳・意訳ですらない置きかえ
日本語に対して英語を充てたとそう勘違いしてる?
430デフォルトの名無しさん
2022/07/05(火) 18:10:02.38ID:K5Eu4yGw >英語の人
なんか申し訳ないね、せっかく英語の意味の違いを教えてくれたのにこんなことになってしまって・・代わりに謝るよ、ごめんね
俺も強欲という名前は間違いだと思う、教えてくれてありがとね
なんか申し訳ないね、せっかく英語の意味の違いを教えてくれたのにこんなことになってしまって・・代わりに謝るよ、ごめんね
俺も強欲という名前は間違いだと思う、教えてくれてありがとね
431デフォルトの名無しさん
2022/07/05(火) 18:23:23.60ID:9eeXBGst > 欲張りと強欲はどちらも欲深いことを言っているだけ
そりゃどちらにも「欲深い」の意があるだろう
だがその2つが並んで違いを理解出来無いのならおまえの日本語力に問題がある
普通に日本語を扱える者ならば「強い」を含む側に強い意味合いが込められていると解する
自分が分からなかったからと言ってケチ付けて自己肯定、「俺が悪いんじゃない」するのはみっともない
そりゃどちらにも「欲深い」の意があるだろう
だがその2つが並んで違いを理解出来無いのならおまえの日本語力に問題がある
普通に日本語を扱える者ならば「強い」を含む側に強い意味合いが込められていると解する
自分が分からなかったからと言ってケチ付けて自己肯定、「俺が悪いんじゃない」するのはみっともない
432デフォルトの名無しさん
2022/07/05(火) 18:29:53.51ID:4sOf+wSV433デフォルトの名無しさん
2022/07/05(火) 18:41:45.68ID:KH2ZmSBP >>427
英語をベースにしないならそれこそrice ballのようにもっと適切な命名があるでしょ
プログラミング分野においてgreedyを貪欲/強欲/欲張りと訳すのが定番化してる中で
正規表現の場合だけは強欲は貪欲とは意味が違うというのが無理筋で悪い命名でしかない
フクロウ本の第3版で変更されてるのも強欲だと違いが分かりにくい/紛らわしいからだと思うよ
いい命名ではないけど貪欲に対して超貪欲とかならまだ賛同できた
英語をベースにしないならそれこそrice ballのようにもっと適切な命名があるでしょ
プログラミング分野においてgreedyを貪欲/強欲/欲張りと訳すのが定番化してる中で
正規表現の場合だけは強欲は貪欲とは意味が違うというのが無理筋で悪い命名でしかない
フクロウ本の第3版で変更されてるのも強欲だと違いが分かりにくい/紛らわしいからだと思うよ
いい命名ではないけど貪欲に対して超貪欲とかならまだ賛同できた
434デフォルトの名無しさん
2022/07/05(火) 18:41:56.55ID:4sOf+wSV ちなみに日本語には無欲と[貪|強]欲の間に[小|少]欲ってのがあって、
こっちは明確に欲が少ないと定義されてるんだが、
普通に日本語を扱える者は「小さい」あるいは「少ない」欲の対義語として
「強い」欲となることに違和感を持たないものかな?
…とここまで書いて気付いたけど、貧と強が欲の深さを表してると思ってたってことか
かわいいね
こっちは明確に欲が少ないと定義されてるんだが、
普通に日本語を扱える者は「小さい」あるいは「少ない」欲の対義語として
「強い」欲となることに違和感を持たないものかな?
…とここまで書いて気付いたけど、貧と強が欲の深さを表してると思ってたってことか
かわいいね
435デフォルトの名無しさん
2022/07/05(火) 19:04:14.64ID:K5Eu4yGw 昔は強欲でも困らなかったんだろう、しかし時代は変化していくからな
日本人にとって英語がより身近になれば英語から見ておかしい訳は淘汰されていくだろう
野球のカウントが S B O から B S O の順に変わったのと似てる、野茂以前では S B O で何の不都合も無かった
メジャーリーグを大リーグと呼ぶ訳は英語が分かる人から見てどう思うのか少し気になるw
日本人にとって英語がより身近になれば英語から見ておかしい訳は淘汰されていくだろう
野球のカウントが S B O から B S O の順に変わったのと似てる、野茂以前では S B O で何の不都合も無かった
メジャーリーグを大リーグと呼ぶ訳は英語が分かる人から見てどう思うのか少し気になるw
436デフォルトの名無しさん
2022/07/05(火) 19:04:56.60ID:TINjq0RZ >>430
私(415,419)に対する人格攻撃や精神疾患への当て擦りととられる発言まで晒しておいて自身の行為は謝罪しないのな
一般に貪欲も欲張りも強欲もまとめてgreedなのもpossessiveが強欲でないこともあなた以外全員知ってた
その上で用語として定義されたものを訳とみなしたときの気持ち悪さについて議論している
絶対最大の英訳がpossessiveとかそれこそあり得ないだろ?
私(415,419)に対する人格攻撃や精神疾患への当て擦りととられる発言まで晒しておいて自身の行為は謝罪しないのな
一般に貪欲も欲張りも強欲もまとめてgreedなのもpossessiveが強欲でないこともあなた以外全員知ってた
その上で用語として定義されたものを訳とみなしたときの気持ち悪さについて議論している
絶対最大の英訳がpossessiveとかそれこそあり得ないだろ?
437デフォルトの名無しさん
2022/07/05(火) 19:05:56.36ID:9eeXBGst > 強奪と収奪
「奪う」はどちらも同じ
収は集める意が含まれる
強奪の強は「強引に」の意
ひったくりは収奪よりは強奪
村やビル占拠して人質脅して金品出させるようなのは「集める」ので収奪
収奪だって「奪う」ので「強制」的、強奪ではあるが「集める」方をより強調させた言葉
あと言葉はふわっとしてるもので意味するところはある程度の範囲がある
「奪う」の意が同じなのでどちらでも問題が無い場合もあるだろう
だが
> その2つが並んで違いを理解出来無いのなら
と書いたように両者を用いているのであれば、そこに違いがあって当然なわけで普通はその差異を汲み取れる
「奪う」はどちらも同じ
収は集める意が含まれる
強奪の強は「強引に」の意
ひったくりは収奪よりは強奪
村やビル占拠して人質脅して金品出させるようなのは「集める」ので収奪
収奪だって「奪う」ので「強制」的、強奪ではあるが「集める」方をより強調させた言葉
あと言葉はふわっとしてるもので意味するところはある程度の範囲がある
「奪う」の意が同じなのでどちらでも問題が無い場合もあるだろう
だが
> その2つが並んで違いを理解出来無いのなら
と書いたように両者を用いているのであれば、そこに違いがあって当然なわけで普通はその差異を汲み取れる
438デフォルトの名無しさん
2022/07/05(火) 19:31:46.72ID:K5Eu4yGw >>436
いや俺そこまでのことは言ってないと思うのだが
そんなつもりではなかったのでそれ以上に受け取ったなら謝るよ、ごめんね
>絶対最大がpossessive
日本語から英語への翻訳がこれだったら変だと思うね
いや俺そこまでのことは言ってないと思うのだが
そんなつもりではなかったのでそれ以上に受け取ったなら謝るよ、ごめんね
>絶対最大がpossessive
日本語から英語への翻訳がこれだったら変だと思うね
439デフォルトの名無しさん
2022/07/05(火) 19:45:12.44ID:4sOf+wSV440デフォルトの名無しさん
2022/07/05(火) 19:52:54.12ID:9eeXBGst > 強欲についは頑なに強いと思ってるその認知は
>> その2つが並んで違いを理解出来無いのなら
が理解出来無い?
『「欲張り」と「強欲」が併用されている場合』に
どちらが強い意味合いを持つのかは一目瞭然な訳だが
まだ続けるの?
>> その2つが並んで違いを理解出来無いのなら
が理解出来無い?
『「欲張り」と「強欲」が併用されている場合』に
どちらが強い意味合いを持つのかは一目瞭然な訳だが
まだ続けるの?
441デフォルトの名無しさん
2022/07/05(火) 20:03:46.40ID:9jUwBfIC SunやMicrosoftが使ってる以上、意味はどうあれ専門用語として取り扱うべきである
俺は嫌だから使わないってのはいいけど
他人が使ってるのをそんな言葉知らんぞ、間違ってると指摘するのは異常人
俺は嫌だから使わないってのはいいけど
他人が使ってるのをそんな言葉知らんぞ、間違ってると指摘するのは異常人
442デフォルトの名無しさん
2022/07/05(火) 20:05:32.97ID:4sOf+wSV443デフォルトの名無しさん
2022/07/05(火) 20:07:09.41ID:4sOf+wSV444デフォルトの名無しさん
2022/07/05(火) 20:11:53.67ID:4sOf+wSV445デフォルトの名無しさん
2022/07/05(火) 20:25:49.94ID:mmXAp8Yt なんだなんだ
「強欲」って用語が指していることを理解してなくて会話がかみ合わなかった週末の人、
数日経ってもまだ「ぼくちゃんまちがってないもんえいごだとこうなんだもん」って駄々こねて80レス位進んでるのか・・・・・
ちょっとした勘違いとかちゃんとした日本語のドキュメントに目を通してなかったとか誰にでもあることなんだから
それこそ貧欲って書いてた人みたいに一言間違ってたわwって言うくらいで収まることだと思うんだけどなあ
悪いけどやってること恥の上塗りだよ?
「強欲」って用語が指していることを理解してなくて会話がかみ合わなかった週末の人、
数日経ってもまだ「ぼくちゃんまちがってないもんえいごだとこうなんだもん」って駄々こねて80レス位進んでるのか・・・・・
ちょっとした勘違いとかちゃんとした日本語のドキュメントに目を通してなかったとか誰にでもあることなんだから
それこそ貧欲って書いてた人みたいに一言間違ってたわwって言うくらいで収まることだと思うんだけどなあ
悪いけどやってること恥の上塗りだよ?
446デフォルトの名無しさん
2022/07/05(火) 20:35:51.78ID:K5Eu4yGw もう ひんよく と きょうよく でいいよ
447デフォルトの名無しさん
2022/07/05(火) 22:07:33.30ID:mmXAp8Yt 同一人物のくせに他人のフリとかどんだけ面の皮厚いんだよ・・・とか一瞬思ったけど
ID:K5Eu4yGw と ID:nkFK6+7O ID:4sOf+wSV は別人だったのか
見分けついてなくて同一レベルのゴミかと思ってたわごめん
ID:K5Eu4yGw と ID:nkFK6+7O ID:4sOf+wSV は別人だったのか
見分けついてなくて同一レベルのゴミかと思ってたわごめん
448デフォルトの名無しさん
2022/07/05(火) 22:30:45.62ID:JtY8aViY 口語だと基本的に最短一致、最長一致、バックトラックしない最長一致って言ってる
欲張りとか強欲とか実際に口に出して言ってる人には出会ったことないわ
欲張りとか強欲とか実際に口に出して言ってる人には出会ったことないわ
449デフォルトの名無しさん
2022/07/05(火) 22:50:11.96ID:MNnvUB1p (非探索)最長一致
(最)多一致
(最)少一致
どちらも「最長」だと紛らわしさがあるので
でも「強欲」で定着しているものをわざわざ言い換える程の事でも無いと思う
(最)多一致
(最)少一致
どちらも「最長」だと紛らわしさがあるので
でも「強欲」で定着しているものをわざわざ言い換える程の事でも無いと思う
450426
2022/07/06(水) 00:22:09.50ID:ToTyGXGb >>428
\x0085を\x{0085}に変えて
[\s&&[^\r\n\x{0085}\x{2028}\x{2029}]]でOKでした
積演算&&の有効な使い方を初めて知りました
どうもありがとうございました
\x0085を\x{0085}に変えて
[\s&&[^\r\n\x{0085}\x{2028}\x{2029}]]でOKでした
積演算&&の有効な使い方を初めて知りました
どうもありがとうございました
451デフォルトの名無しさん
2022/07/06(水) 02:03:37.65ID:7JN09BFV \R*+\K\s
452デフォルトの名無しさん
2022/07/06(水) 05:39:49.51ID:FCzm9xaa 口頭ってことは対面レビューとか他の人と共有するソースコードでの正規表現だよね?
そうなると、相手のスキルレベルにもよるけど
「強欲」って単語だけでなく強欲な正規表現自体も避けておくかなあ
このスレのうんざりする流れを見てもわかるとおり「強欲」が相手に通じるとは限らないし
(強欲な正規表現なんて使ったことがない人のほうが多数派だろうし)
最長一致で事足りるなら多少のパフォーマンス悪化には目をつぶる
チャットとかなら「++」みたいな具体例を明示して「強欲」って単語を使うかな
ここみたいな正規表現スレならなにも前提を置かなくとも普通に「強欲」で通じるものとして会話するけど・・・
会話が成り立たなかったうえに間違いを指摘されても「英語だと」「口語だと」「xxxだと」とか延々ゴネる人とは会話したくないなあ
いい加減NGしたいからコテつけてくれるとありがたい
そうなると、相手のスキルレベルにもよるけど
「強欲」って単語だけでなく強欲な正規表現自体も避けておくかなあ
このスレのうんざりする流れを見てもわかるとおり「強欲」が相手に通じるとは限らないし
(強欲な正規表現なんて使ったことがない人のほうが多数派だろうし)
最長一致で事足りるなら多少のパフォーマンス悪化には目をつぶる
チャットとかなら「++」みたいな具体例を明示して「強欲」って単語を使うかな
ここみたいな正規表現スレならなにも前提を置かなくとも普通に「強欲」で通じるものとして会話するけど・・・
会話が成り立たなかったうえに間違いを指摘されても「英語だと」「口語だと」「xxxだと」とか延々ゴネる人とは会話したくないなあ
いい加減NGしたいからコテつけてくれるとありがたい
453デフォルトの名無しさん
2022/07/06(水) 06:39:20.23ID:5qGkM3IH しかし回答者のレベル低下が酷いな
ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
$1,$2の件や強欲のすれ違いについても積極的に事態の収集を図ろうとせず悪化させて悪乗りするとはね
ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
$1,$2の件や強欲のすれ違いについても積極的に事態の収集を図ろうとせず悪化させて悪乗りするとはね
454デフォルトの名無しさん
2022/07/06(水) 06:47:28.85ID:TTp+bFLp 英語名を変えさせたら良い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い
455298
2022/07/06(水) 06:53:49.49ID:ZAN9ui5m456デフォルトの名無しさん
2022/07/06(水) 07:02:49.27ID:5qGkM3IH ここの回答者はそう勘違いしてるのを知ってて何も助言しなかったんだぞ、馬鹿にして笑ってたんだよ
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった
457298
2022/07/06(水) 07:06:06.70ID:ZAN9ui5m 秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511
~
~
で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++ ←は>>314さんの教えてくれたヤツ。
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511
~
~
で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++ ←は>>314さんの教えてくれたヤツ。
458デフォルトの名無しさん
2022/07/06(水) 07:09:45.51ID:SZC2q9b+ これ非包含演算子に粘着してるのと同じやつだろ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ
459デフォルトの名無しさん
2022/07/06(水) 07:46:05.23ID:o/55z/m0460298
2022/07/06(水) 08:07:45.17ID:ZAN9ui5m461デフォルトの名無しさん
2022/07/06(水) 11:44:54.56ID:MXaUuSJv まず英語の勉強をするべき
462デフォルトの名無しさん
2022/07/06(水) 12:10:15.16ID:c6fRPAAn CSV の正規表現なんて、数千行ぐらい掛かるだろ。
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル
463デフォルトの名無しさん
2022/07/06(水) 13:40:21.16ID:gR1YTmZs464デフォルトの名無しさん
2022/07/06(水) 15:43:31.34ID:MXaUuSJv KEИTAはでたらめ
465462
2022/07/06(水) 17:15:52.66ID:c6fRPAAn 行区切り文字の改行、列区切り文字のカンマ、
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない
466デフォルトの名無しさん
2022/07/06(水) 17:19:01.24ID:QeuQIz9d なんか話脱線マウントしまくって会議やコードレビュー下手くそで顰蹙を買いまくってそうな人来てるやん
467デフォルトの名無しさん
2022/07/06(水) 17:55:19.63ID:gR1YTmZs >>465
混ぜなきゃいいのでは
混ぜなきゃいいのでは
468デフォルトの名無しさん
2022/07/06(水) 19:01:53.46ID:kQhbtDqq いつも文体一緒だからバレる
469デフォルトの名無しさん
2022/07/06(水) 19:30:39.95ID:5qGkM3IH >> 298
「店」が無い店もあったからHTMLソースから取り出すようにしたよ
ブラウザでHTMLソースを表示させてnotepad++にソースをコピペしてから置換して
1回目の検索欄
^[^\r\n]*<h4\s+[^>]*class=["']?shopList[_\-\s]*storeName["']?[^>]*>\s*<span[^>]*>\s*</span\s*>\s*([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*
</h4\s*>(?:(?!<dd[^>]*>\s*〒|<h4)(?:[\r\n]|.))*<dd[^>]*>\s*〒\s*[\d\-]+\s+([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*</dd\s*>[^\r\n]*$
1回目の置換欄
うんこ$1,$2
2回目の検索欄
^(?!うんこ)[^\r\n]*$[\r\n]+
1回目の置換欄
( 空欄にして )
2回の置換が終われば店舗一覧が完成しているはず
1回目の検索欄は長すぎるから2行に分割したよ、1行に繋げてから使って
検索欄や置換欄に記入するときは前後に余計なスペースやタブ文字が紛れ込まないように
HTMLの細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ
「店」が無い店もあったからHTMLソースから取り出すようにしたよ
ブラウザでHTMLソースを表示させてnotepad++にソースをコピペしてから置換して
1回目の検索欄
^[^\r\n]*<h4\s+[^>]*class=["']?shopList[_\-\s]*storeName["']?[^>]*>\s*<span[^>]*>\s*</span\s*>\s*([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*
</h4\s*>(?:(?!<dd[^>]*>\s*〒|<h4)(?:[\r\n]|.))*<dd[^>]*>\s*〒\s*[\d\-]+\s+([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*</dd\s*>[^\r\n]*$
1回目の置換欄
うんこ$1,$2
2回目の検索欄
^(?!うんこ)[^\r\n]*$[\r\n]+
1回目の置換欄
( 空欄にして )
2回の置換が終われば店舗一覧が完成しているはず
1回目の検索欄は長すぎるから2行に分割したよ、1行に繋げてから使って
検索欄や置換欄に記入するときは前後に余計なスペースやタブ文字が紛れ込まないように
HTMLの細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ
470デフォルトの名無しさん
2022/07/06(水) 19:34:28.40ID:5qGkM3IH ミスった
1回目の置換欄
( 空欄にして )
これは2回目だね
1回目の置換欄
( 空欄にして )
これは2回目だね
471デフォルトの名無しさん
2022/07/06(水) 19:39:45.64ID:5qGkM3IH 全国の店舗一覧を取得したいならwgetなどで各店舗一覧ページをローカルに保存してからnotepad++のファイル一括置換でまとめて置換したほうが楽
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて
472デフォルトの名無しさん
2022/07/06(水) 23:10:34.54ID:gFUK7vgi ホンの少し複雑化しただけで頭の悪さや性格って浮かび上がるよねw
473デフォルトの名無しさん
2022/07/07(木) 16:29:53.46ID:ls1FMHZL そのまま正規表現1回でやるのと、改行の種類とかあったりなかったりする要素とか明らかに不要な要素を掃除してからやるのとどっちがいいですか
474デフォルトの名無しさん
2022/07/07(木) 16:37:27.46ID:3hUwVJb0 掃除して整形してからやるのがコスパ良いに決まってる
力業いくない
力業いくない
475デフォルトの名無しさん
2022/07/07(木) 17:27:59.03ID:EezL89dt ケースバイケースやろ
476デフォルトの名無しさん
2022/07/07(木) 17:45:22.88ID:QZNfJ5wA 答え合わせ出来るとか、間違いに気付き易いor間違い難いケースは1発
合ってるか分かり難い場合は間違い難い正規化式で段階踏む
合ってるか分かり難い場合は間違い難い正規化式で段階踏む
477デフォルトの名無しさん
2022/07/08(金) 12:52:02.00ID:/znuHP85 パイプ・フィルターみたいに、どんどん変換していく方が分かりやすい。
処理A | 処理B | 処理C
Ruby の正規表現では、3種類の改行を、\R と書ける
/\r\n|\r|\n/
/\R/
処理A | 処理B | 処理C
Ruby の正規表現では、3種類の改行を、\R と書ける
/\r\n|\r|\n/
/\R/
478デフォルトの名無しさん
2022/07/10(日) 17:44:55.47ID:0O2dRiW8 >possesive
ポジティブ
ポジティブ
479デフォルトの名無しさん
2022/07/16(土) 01:09:47.27ID:gUwlqT3Y そして誰もいなくなった
480デフォルトの名無しさん
2022/07/16(土) 09:09:55.88ID:L4T2PUf2 民度の低い異常者が常駐してたらそりゃ関わりたくないもん
481デフォルトの名無しさん
2022/07/16(土) 11:12:47.12ID:WasoqaBj 自己紹介乙
482デフォルトの名無しさん
2022/07/20(水) 06:49:04.62ID:v4tHM0fs ●Regular Expressionの使用環境
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字
を
同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字
を
同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。
483デフォルトの名無しさん
2022/07/20(水) 07:23:49.75ID:iuCM0uSo 説明にない[は何?
484デフォルトの名無しさん
2022/07/20(水) 08:35:20.99ID:jm1i1IHH485デフォルトの名無しさん
2022/07/20(水) 09:04:35.27ID:Fdf9zFh2 テスト
\[(.+?)(.*?\1)\](?\2)
\[(.+?)(.*?\1)\](?\2)
486デフォルトの名無しさん
2022/07/20(水) 16:27:05.86ID:f63hBcuy (.+).+?\1
$1
$1
487デフォルトの名無しさん
2022/07/20(水) 16:30:30.08ID:OlkAUELc [ wow & wow]
489デフォルトの名無しさん
2022/08/28(日) 01:14:30.52ID:y+9tLdhC 正規表現の先読み・後読み https://zenn.dev/usamik26/articles/regex-lookahead
490デフォルトの名無しさん
2022/08/28(日) 07:40:58.02ID:MbqzPdhg perlでは/.*hoge/より/.*?piyo/の方が圧倒的に速いのか
ステップ数は大して変わらなそうなのに
ステップ数は大して変わらなそうなのに
491デフォルトの名無しさん
2022/08/28(日) 08:17:37.04ID:e6Sjxbuq >>490
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから
492デフォルトの名無しさん
2022/08/28(日) 08:52:32.95ID:7Mb5USF7 >>491
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと
493デフォルトの名無しさん
2022/08/28(日) 09:11:11.32ID:dcB5AKwO >>492
そりゃそういうケースもあるけどそうでないケースの方が多いだろ
そりゃそういうケースもあるけどそうでないケースの方が多いだろ
494デフォルトの名無しさん
2022/08/28(日) 10:55:00.88ID:V92k17Tf 489の記事・コメントを見たけど
「.*hoge.*」
と
「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても
「.*hoge.*」
と
「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても
495デフォルトの名無しさん
2022/08/28(日) 12:06:13.62ID:3aiLuiYL マッチする場合はそれほどステップ数は変わらないけど
マッチしない場合のステップ数の差は大きいね
マッチしない場合のステップ数の差は大きいね
496デフォルトの名無しさん
2022/08/28(日) 12:10:20.88ID:iCw3MfJc (?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ)))
これって何か間違ってますか?280が消えない時があります
これって何か間違ってますか?280が消えない時があります
497デフォルトの名無しさん
2022/08/28(日) 12:33:21.57ID:4oWDpmI8 [22][88][00]
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし
498デフォルトの名無しさん
2022/08/28(日) 14:30:01.62ID:HKThARKH なぜ組み合わせたいのかがよくわからんな
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?
499デフォルトの名無しさん
2022/08/28(日) 14:36:53.39ID:q8tm2XHG 単発のNGの他に連鎖NGとかIDごとNGとかあるだろ
わからないなら黙ってろよ
わからないなら黙ってろよ
500デフォルトの名無しさん
2022/08/28(日) 16:16:08.48ID:XxcpkpFs ごめん
501デフォルトの名無しさん
2022/09/04(日) 01:47:12.24ID:0/i0sC9q GNU grep 3.8 (2022-09-02)から-Pオプションのリンク先がPCRE2になったらしい
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど
502デフォルトの名無しさん
2022/09/04(日) 07:42:45.45ID:pCQ9P7Vy 1
2
あ
10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?
2
あ
10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?
503デフォルトの名無しさん
2022/09/04(日) 08:41:45.13ID:x2tuNrOY ttps://www.simple-edition.com/prog_memo/number_range_regexp/
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
ttps://weblabo.oscasierra.net/tools/regex/
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
ttps://weblabo.oscasierra.net/tools/regex/
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?
504デフォルトの名無しさん
2022/09/04(日) 09:08:03.10ID:MIQciAoV >>503
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])
505デフォルトの名無しさん
2022/09/04(日) 09:46:10.78ID:ZQZ632xa506デフォルトの名無しさん
2022/09/04(日) 10:07:01.01ID:qlj2b1lm すまない
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮
507デフォルトの名無しさん
2022/09/04(日) 10:19:49.12ID:NNtN3+VI まあ案件次第だけど
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保守を含めて簡単かと思う
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保守を含めて簡単かと思う
508デフォルトの名無しさん
2022/09/13(火) 19:48:53.80ID:aae9uQ50 スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。
509デフォルトの名無しさん
2022/09/13(火) 20:02:34.86ID:BFM47HY2 (?<!^)000+(?!$)
-
-
510デフォルトの名無しさん
2022/09/13(火) 20:23:28.22ID:el3nukes 00000 → 0-0 ?
511デフォルトの名無しさん
2022/09/13(火) 20:37:38.14ID:G28B9gdh512デフォルトの名無しさん
2022/09/13(火) 21:45:26.67ID:aae9uQ50 508です。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。
513デフォルトの名無しさん
2022/09/13(火) 22:09:54.11ID:jeF3JQfM514デフォルトの名無しさん
2022/09/13(火) 22:20:12.97ID:GLLSFlxd 「文中(先頭及び文末以外)の0」が連続して3つ以上並ぶ部分
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」
515デフォルトの名無しさん
2022/09/13(火) 22:24:49.17ID:clq+OpKM ^([1-9]+)0+(\d+)$ --> $1-$2
でいかがでしょう
でいかがでしょう
516デフォルトの名無しさん
2022/09/13(火) 22:33:07.80ID:clq+OpKM あ、「ゼロ3つ以上」を満たしてなかった
また考えますー
また考えますー
517デフォルトの名無しさん
2022/09/13(火) 22:35:39.26ID:clq+OpKM ^([1-9]+)0{3,}(\d+)$ --> $1-$2
でしょーか
でしょーか
518デフォルトの名無しさん
2022/09/13(火) 22:46:39.11ID:7uE/UK4/ 010001
519デフォルトの名無しさん
2022/09/13(火) 23:08:19.66ID:G28B9gdh520デフォルトの名無しさん
2022/09/13(火) 23:09:06.59ID:G28B9gdh521デフォルトの名無しさん
2022/09/13(火) 23:10:13.89ID:aae9uQ50 みなさんありがとうございます!
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。
522デフォルトの名無しさん
2022/09/13(火) 23:20:09.73ID:aae9uQ50 そして自分でも要件を言葉にできておらず申し訳ありません
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000
↓
000012-34000
となります。
返信遅くなりすみません。
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000
↓
000012-34000
となります。
返信遅くなりすみません。
523デフォルトの名無しさん
2022/09/13(火) 23:44:59.39ID:G28B9gdh (?<!^)(?>0{3,})(?!$)
未test
最初のマッチだけ置換は以下
https://social.technet.microsoft.com/Forums/ja-JP/ad0f7263-3fd1-4545-b554-e796d27ef948/263682102112398125101248312481?forum=powershellja
未test
最初のマッチだけ置換は以下
https://social.technet.microsoft.com/Forums/ja-JP/ad0f7263-3fd1-4545-b554-e796d27ef948/263682102112398125101248312481?forum=powershellja
524デフォルトの名無しさん
2022/09/14(水) 00:51:16.34ID:4SNfctPQ525デフォルトの名無しさん
2022/09/14(水) 05:23:58.73ID:E5sTi1VY ([1-9])0000*([1-9][0-9]*)
$1-$2
$1-$2
526デフォルトの名無しさん
2022/09/14(水) 09:12:22.80ID:Kn3Wl+2J (?<=[1-9])(?>000+)(?!$)(.+)$
-$1
-$1
527デフォルトの名無しさん
2022/09/14(水) 09:38:59.41ID:s0UMl1ds (^[^0].*?)0{3,}([^0].*?$)
$1-$2
$1-$2
528デフォルトの名無しさん
2022/09/14(水) 10:42:18.62ID:6Qq1IObP529デフォルトの名無しさん
2022/09/14(水) 19:22:12.74ID:+0SwTq6N 508です。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。
530デフォルトの名無しさん
2022/09/14(水) 19:57:00.91ID:b2aEm1i9 回答にある正規表現は置換回数を指定できない置換方法でも大丈夫
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい
531デフォルトの名無しさん
2022/09/14(水) 22:22:31.78ID:+0SwTq6N >530
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。
532デフォルトの名無しさん
2022/09/18(日) 12:56:41.18ID:QaJ1iFM2 githubで結構探したんですがそれっぽいのが見つからず、お力お貸しください。
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"
533デフォルトの名無しさん
2022/09/18(日) 16:16:05.56ID:wjpqonb4534デフォルトの名無しさん
2022/09/18(日) 19:20:15.15ID:/uA/jgNo >>533
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。
535デフォルトの名無しさん
2022/09/18(日) 21:26:30.42ID:CbZe8FP4 "を
\"
や
\x22
に置き換えて試してみてわ
\"
や
\x22
に置き換えて試してみてわ
536デフォルトの名無しさん
2022/09/19(月) 16:41:30.36ID:4iw9Mtek537デフォルトの名無しさん
2022/09/20(火) 02:58:09.09ID:94I1wBUa 二重引用符のエスケープは重ねて""だな
"".*""\s
"".*""\s
538デフォルトの名無しさん
2022/10/29(土) 13:09:46.30ID:ec13kmtS ●Regular Expressionの使用環境
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000〜0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >= state_limit 16383
ng_mcclellan.cpp:buildMcClellan:590:state limit exceeded
rose_build_add.cpp:addOutfix:1779:could not build as either an NFA or a DFA
ng.cpp:addGraph:507:could not compile component 0 with 592 vertices
と言われて説明の例に限っては正規表現のコンパイルすら不可能です
32bit値は4バイト境界に限りませんが、ブロック先頭は4バイト境界なのでそこから高速化したいのですが
「(?>....)*?\K」を接頭しようとするとPCRE2_ANCHOREDはJITで使えませんし、そもそも遅くなるようです
今のところプログラム側でオフセットが4バイト境界のみを拾い、次の検索開始もアライメントしています
コールアウトもお察し…こういったパターンに適した書き方、又はCライブラリが有れば教えて欲しいです
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000〜0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >= state_limit 16383
ng_mcclellan.cpp:buildMcClellan:590:state limit exceeded
rose_build_add.cpp:addOutfix:1779:could not build as either an NFA or a DFA
ng.cpp:addGraph:507:could not compile component 0 with 592 vertices
と言われて説明の例に限っては正規表現のコンパイルすら不可能です
32bit値は4バイト境界に限りませんが、ブロック先頭は4バイト境界なのでそこから高速化したいのですが
「(?>....)*?\K」を接頭しようとするとPCRE2_ANCHOREDはJITで使えませんし、そもそも遅くなるようです
今のところプログラム側でオフセットが4バイト境界のみを拾い、次の検索開始もアライメントしています
コールアウトもお察し…こういったパターンに適した書き方、又はCライブラリが有れば教えて欲しいです
539デフォルトの名無しさん
2022/10/29(土) 19:31:13.26ID:9Ey1MUJ8540デフォルトの名無しさん
2022/10/29(土) 19:42:35.80ID:ec13kmtS >>539
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります
541デフォルトの名無しさん
2022/10/30(日) 10:24:48.15ID:dZd+t5oq スプレッドシートで20221030と入力されている数字を日付の表記?2022/10/30なのか10/30/2022なのかわからないけどDATEDIF関数に使える形に置換する正規表現ってどう書きますでしょうか
542デフォルトの名無しさん
2022/10/30(日) 11:55:42.97ID:oF72FRjI >>541
正規表現では無理。スレチ
DATE関数で日付にかDATEVALUE関数でシリアル値に変換
セルA1の値:20221030
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"2022/11/01","D")
正規表現では無理。スレチ
DATE関数で日付にかDATEVALUE関数でシリアル値に変換
セルA1の値:20221030
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"2022/11/01","D")
543デフォルトの名無しさん
2022/10/30(日) 12:28:15.07ID:S1PTRz+V544デフォルトの名無しさん
2022/11/02(水) 14:16:53.69ID:gx4Z74sz すいません。
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33
545デフォルトの名無しさん
2022/11/02(水) 14:20:50.51ID:4jxQNd6r ^\d+$
546デフォルトの名無しさん
2022/11/02(水) 14:26:53.26ID:gx4Z74sz ありがとうございました!
547デフォルトの名無しさん
2022/11/02(水) 14:39:57.52ID:Hz9+pCnD 00
00000000
012
003102
とかはええんかC言語だと8進数なんだけど
00000000
012
003102
とかはええんかC言語だと8進数なんだけど
548デフォルトの名無しさん
2022/11/02(水) 14:57:45.88ID:mLb2a5cx 最近は8進数を0oと書くのが主流じゃね?
549デフォルトの名無しさん
2022/11/02(水) 15:14:09.32ID:gx4Z74sz いやよくないのですが。。
550デフォルトの名無しさん
2022/11/02(水) 22:52:34.87ID:WMtJS4K4 >>547
なぜC言語?
なぜC言語?
551デフォルトの名無しさん
2022/11/03(木) 13:08:35.66ID:yr3S2O5F ^(?:0|[1-9]\d*+)$
552デフォルトの名無しさん
2022/11/03(木) 23:35:12.45ID:gGr9RQjz A(B(1), C(2)), B(3), C(4), A(D(5))の
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?
553デフォルトの名無しさん
2022/11/04(金) 00:21:55.02ID:Rv2RlvZT A\([BD]\([15]\)(, C\(2\))?\)
554デフォルトの名無しさん
2022/11/04(金) 00:32:30.76ID:u3TD418O >>552
関数名は英数字1文字、ネストされた関数の引数は数字1文字にしてるけどこんな感じでいけるかと
\w\(\w\(\d\)(?:,\s*\w\(\d\))*\)
https://i.imgur.com/8ayodnp.jpg
関数名は英数字1文字、ネストされた関数の引数は数字1文字にしてるけどこんな感じでいけるかと
\w\(\w\(\d\)(?:,\s*\w\(\d\))*\)
https://i.imgur.com/8ayodnp.jpg
555デフォルトの名無しさん
2022/11/04(金) 19:23:25.88ID:aOu/uEdM556デフォルトの名無しさん
2022/11/05(土) 19:55:25.05ID:xnenmrxP 下のようなテキストがあった時、
フシギダネ、たねポケモン。生まれてから、しばらくの間は背中のタネから栄養をもらって大きく育つ。
フシギソウ、たねポケモン。背中のつぼみがふくらみだすと、あまい匂いが漂い始める。
フシギバナ、たねポケモン。雨の降った翌日は、背中の花の香りが強まる。
その行で最初に出てきた「、」だけをTabで置換したいのですが、
正規表現でなんとかできますかね?(´・ω・`)
フシギダネ、たねポケモン。生まれてから、しばらくの間は背中のタネから栄養をもらって大きく育つ。
フシギソウ、たねポケモン。背中のつぼみがふくらみだすと、あまい匂いが漂い始める。
フシギバナ、たねポケモン。雨の降った翌日は、背中の花の香りが強まる。
その行で最初に出てきた「、」だけをTabで置換したいのですが、
正規表現でなんとかできますかね?(´・ω・`)
557デフォルトの名無しさん
2022/11/05(土) 19:57:13.42ID:Gow5Zgrm 顔文字が気持ち悪い
558デフォルトの名無しさん
2022/11/05(土) 19:57:30.67ID:KyEMh/LJ マルチラインモードのg無し置換でええのでは?
559デフォルトの名無しさん
2022/11/05(土) 20:01:38.81ID:xnenmrxP すみません。7分で自己解決しました。(´・ω・`)
560デフォルトの名無しさん
2022/11/06(日) 18:52:14.69ID:Ju9kLy6l >>559.replace('(´・ω・`)', '');
561デフォルトの名無しさん
2022/11/06(日) 18:56:40.82ID:gpiofWbc >>560
エスケープしろ
エスケープしろ
562デフォルトの名無しさん
2022/12/01(木) 00:48:55.16ID:7b6m1q/M 師走だ
563デフォルトの名無しさん
2022/12/01(木) 20:43:42.13ID:MJwbaGOX >>556
^(.*?)、(.*)$ → $1¥t$2
^(.*?)、(.*)$ → $1¥t$2
564デフォルトの名無しさん
2022/12/07(水) 17:35:07.95ID:hI2dpmO3 正規表現はコードを分かりにくくする非常に悪い技術だと思います。
早く廃止され、代替方法が見つかってほしいです。
早く廃止され、代替方法が見つかってほしいです。
565デフォルトの名無しさん
2022/12/07(水) 18:06:34.78ID:Zr5hf/of それは思うけどqwertyキーボードですらこの半世紀何も変わってないし、Legacy引き摺る類のUIは余程の転換期でも起こらない限り無理なんじゃないかな
566デフォルトの名無しさん
2022/12/07(水) 18:23:42.79ID:IT7suRvF >>564
わかりやすくて使い物にならないものができあがる予感
わかりやすくて使い物にならないものができあがる予感
567デフォルトの名無しさん
2022/12/07(水) 18:33:23.28ID:8ZB5Tvh5 物事の「本質的な複雑さ」を解決しようとしても「その場でぐるぐる回り続ける」ハメになるだけ(どこにもたどり着くことはない)
568デフォルトの名無しさん
2022/12/07(水) 21:37:36.61ID:lzjCqHmQ 正規表現を分かりやすい自然言語や仕様記述に変換するサービス作れば解決
正規表現を生成する機能も用意して最適化オプションもつければ有償で十分やっていける
正規表現を生成する機能も用意して最適化オプションもつければ有償で十分やっていける
569デフォルトの名無しさん
2022/12/07(水) 22:46:38.37ID:0xPH+d9p >>568
とりあえずそう言うアプリにお前ならいくら払うんだ?
とりあえずそう言うアプリにお前ならいくら払うんだ?
570デフォルトの名無しさん
2022/12/08(木) 10:58:46.31ID:c3lwHRlZ571デフォルトの名無しさん
2022/12/11(日) 15:34:21.97ID:xFkTi0uS abc-ABC
abcd-ABC-def
abcde-defghi-ABC
ab-def-ghi-ABC
-ABCより前にハイフンのない-ABCを選択するのに3,4行目を除外する事で出来たのですが直接-ABCを選択するような事って出来ますか? 使うのはpythonです。よろしくお願いします
abcd-ABC-def
abcde-defghi-ABC
ab-def-ghi-ABC
-ABCより前にハイフンのない-ABCを選択するのに3,4行目を除外する事で出来たのですが直接-ABCを選択するような事って出来ますか? 使うのはpythonです。よろしくお願いします
572デフォルトの名無しさん
2022/12/11(日) 15:49:22.27ID:xFkTi0uS あ、行頭を指定すれば簡単に出来ましたスレ汚しすみませんでした
573デフォルトの名無しさん
2022/12/26(月) 08:14:24.98ID:G31tf+Le 質問です
私に全然知識がないのですごい初歩的な質問になるのですが
例えば“テキ”を検索するとして
“仮テキスト”となっているのは除く、
ホワイトリストを付随するような検索をするにはどうすればいいでしょうか?
私が試したもの、
(?<!仮)テキ(?!スト)
↑例えばこれだと“仮テキ”や“テキスト”まで除かれてしまいます
(おそらく「そりゃ当たり前だろ」と思われる事を言ってると思うのですがなにぶん知識がないためご容赦ください)
正規表現を使う場所としてはchmateやFirefoxアドオンなどで使っています
浅学バリバリな質問なのですがどうかご回答よろしくお願いします
私に全然知識がないのですごい初歩的な質問になるのですが
例えば“テキ”を検索するとして
“仮テキスト”となっているのは除く、
ホワイトリストを付随するような検索をするにはどうすればいいでしょうか?
私が試したもの、
(?<!仮)テキ(?!スト)
↑例えばこれだと“仮テキ”や“テキスト”まで除かれてしまいます
(おそらく「そりゃ当たり前だろ」と思われる事を言ってると思うのですがなにぶん知識がないためご容赦ください)
正規表現を使う場所としてはchmateやFirefoxアドオンなどで使っています
浅学バリバリな質問なのですがどうかご回答よろしくお願いします
574デフォルトの名無しさん
2022/12/26(月) 08:18:23.33ID:LqfRRdYe575デフォルトの名無しさん
2022/12/26(月) 10:07:19.58ID:5uJMWDBy (?<!仮)テキ|テキ(?!スト)
576デフォルトの名無しさん
2022/12/27(火) 04:47:48.03ID:xSShEST7577デフォルトの名無しさん
2022/12/27(火) 17:03:22.33ID:G2ophMPv テキ(?!..(?<=仮テキスト))
578デフォルトの名無しさん
2022/12/28(水) 01:36:28.87ID:Ztu+b3Ae579デフォルトの名無しさん
2022/12/29(木) 18:17:40.05ID:HWC94+Gl 正規表現は半年後の自分がメンテできないから嫌なんだわ
特にその時適当に書いて辛うじて動いてるやつなのか会心の出来だったやつなのか一見判らなくて困るんだわ
正規表現に10段階ぐらい完成度のタグを付けたいのだよハイパーテキスト的にな
そういう気の利いて手軽な方法はないのかのう
特にその時適当に書いて辛うじて動いてるやつなのか会心の出来だったやつなのか一見判らなくて困るんだわ
正規表現に10段階ぐらい完成度のタグを付けたいのだよハイパーテキスト的にな
そういう気の利いて手軽な方法はないのかのう
580デフォルトの名無しさん
2022/12/29(木) 19:06:41.81ID:W/by+W2J 人から貰った正規表現を理解もせずに自分の物にしていないからそんな事が起こる
自分で書いた正規表現なら何年経ってもパッと見りゃ内容解る
と言うか年々理解度が向上するから、見てがっかりして書き直すまである
自分で書いた正規表現なら何年経ってもパッと見りゃ内容解る
と言うか年々理解度が向上するから、見てがっかりして書き直すまである
581デフォルトの名無しさん
2022/12/29(木) 19:37:11.07ID:HWC94+Gl >と言うか年々理解度が向上するから
若いってええなあ
あと10年もすれば昔の自分の方が頭いいじゃねえか状態になるから今ががんばり時だよ
若いってええなあ
あと10年もすれば昔の自分の方が頭いいじゃねえか状態になるから今ががんばり時だよ
582デフォルトの名無しさん
2022/12/29(木) 19:46:27.85ID:JPv7+i4s >>579
コメント付けられる方言もあるがな
コメント付けられる方言もあるがな
583デフォルトの名無しさん
2022/12/29(木) 20:16:21.35ID:Y6+rT86n >>581
すまんもう60越えとる
すまんもう60越えとる
584デフォルトの名無しさん
2022/12/29(木) 21:08:41.79ID:5pKgQfqK テスト書かないんだろ
585デフォルトの名無しさん
2022/12/29(木) 23:00:20.15ID:zukJLKA9 そのうち、こうこうしたいと書くとそれに合った正規表現を出力するAIが出て来る
たぶん
たぶん
586デフォルトの名無しさん
2022/12/29(木) 23:37:13.29ID:VQTP+Rjm >>585
今でもchatGPTで出来る
今でもchatGPTで出来る
587デフォルトの名無しさん
2022/12/30(金) 00:14:09.14ID:QnG1dvSt 今では正規表現中にコメントが書ける(拡張形式ignore whitespace)ものも多いのでは
588デフォルトの名無しさん
2022/12/30(金) 01:37:49.63ID:1dcL6xM/589デフォルトの名無しさん
2022/12/30(金) 05:43:41.86ID:gQwuuolL 正規表現の高齢化問題
今の子って正規表現に触れる機会あんのかなあ
糞みたいなエスケープシーケンスの概念込みで教えなきゃならんし
授業ではすきっぷやな
今の子って正規表現に触れる機会あんのかなあ
糞みたいなエスケープシーケンスの概念込みで教えなきゃならんし
授業ではすきっぷやな
590デフォルトの名無しさん
2022/12/31(土) 09:31:33.47ID:3UMVip3o >>585
ここが…
ここが…
591デフォルトの名無しさん
2022/12/31(土) 19:47:02.85ID:yp0KXAnH 字幕ファイルの修正で秀丸を使って
文字列の置き換えしたいと考えています
置換前
00:00:06:09 - 00:00:10:47
おはよう
00:00:11:18 - 00:00:16:02
こんにちは
置換後
00:00:06.090,00:00:10.470
おはよう
00:00:11.180,00:00:16.020
こんにちは
----
対象データ
”xx:xx:xx:xx - xx:xx:xx:xx”
":xx - "を".xx0,"に置き換え
最後の"xx"を"xx0"に置き換え
希望結果
”xx:xx:xx.xx0,xx:xx:xx.xx0”
お願い致します
文字列の置き換えしたいと考えています
置換前
00:00:06:09 - 00:00:10:47
おはよう
00:00:11:18 - 00:00:16:02
こんにちは
置換後
00:00:06.090,00:00:10.470
おはよう
00:00:11.180,00:00:16.020
こんにちは
----
対象データ
”xx:xx:xx:xx - xx:xx:xx:xx”
":xx - "を".xx0,"に置き換え
最後の"xx"を"xx0"に置き換え
希望結果
”xx:xx:xx.xx0,xx:xx:xx.xx0”
お願い致します
592デフォルトの名無しさん
2022/12/31(土) 21:20:45.11ID:gFIlpiwK せっかく秀丸スレあるんだからそっちで聞けばいいのに
HmJre.dll V.510
^([0-9:]+):([0-9]{2}) - ([0-9:]+):([0-9]{2})$
\1.\20,\3.\40
HmJre.dll V.510
^([0-9:]+):([0-9]{2}) - ([0-9:]+):([0-9]{2})$
\1.\20,\3.\40
593591
2022/12/31(土) 22:37:29.30ID:yp0KXAnH 大晦日のツンデレさんに圧倒的感謝!!
ありがとうございます
ありがとうございます
594デフォルトの名無しさん
2023/01/04(水) 10:29:42.45ID:vMZ55Vj6 教えてくださいm(__)m
[あああ(いいい)]
のような文字列を
[いいい](あああ)
と置き換える方法はあるでしょうか
[あああ(いいい)]
のような文字列を
[いいい](あああ)
と置き換える方法はあるでしょうか
595デフォルトの名無しさん
2023/01/04(水) 12:23:22.97ID:gCqYqHxa [あああ(いいい)]で検索して
[いいい](あああ)で置換する
[いいい](あああ)で置換する
596デフォルトの名無しさん
2023/01/04(水) 12:35:30.42ID:Gtp9NVd3 テンプレ無視する馬鹿にはその答で十分だわな
597デフォルトの名無しさん
2023/01/04(水) 12:40:09.77ID:k64eH4zi まあ一例として
s/\[([^\[\]\(\)]+)\(([^\[\]\(\)]+)\)\]/[$2]($1)/
s/\[([^\[\]\(\)]+)\(([^\[\]\(\)]+)\)\]/[$2]($1)/
598デフォルトの名無しさん
2023/01/04(水) 13:41:53.53ID:sAqw0ZzI >>594
https://glot.io/snippets/ggykutt927
import pegs
echo "[あああ(いいい)]".replacef(peg" '[' {@} '(' {@} ')' ']' ","[$2]($1)")
でいける
https://glot.io/snippets/ggykutt927
import pegs
echo "[あああ(いいい)]".replacef(peg" '[' {@} '(' {@} ')' ']' ","[$2]($1)")
でいける
599デフォルトの名無しさん
2023/01/04(水) 18:30:34.43ID:REieKqQf 文頭や文中にあるauだけをNGするやつ教えて下さい
600デフォルトの名無しさん
2023/01/04(水) 18:46:40.14ID:Edm8Og2O docomoはいいのか
601デフォルトの名無しさん
2023/01/04(水) 18:57:17.14ID:zEB0n1jD 唐突に「NGする」って一体何の話だ???
602デフォルトの名無しさん
2023/01/04(水) 18:58:30.08ID:zEB0n1jD 何かを想定しているなら質問に際して最初にそれを伝えるのが常識だろう
603デフォルトの名無しさん
2023/01/06(金) 10:01:53.18ID:+4FzrtmN604デフォルトの名無しさん
2023/01/06(金) 10:09:25.96ID:+4FzrtmN >>597
感謝です!
感謝です!
605デフォルトの名無しさん
2023/01/07(土) 13:40:18.10ID:0HEuBgBZ JaneStyle等の5ちゃん専ブラのNG設定用に、以下の条件を全て満たす書き方を教えてください。
・1行(改行文字無し)
・半角全角で70文字以上100文字
・文中に「、」または「。」を1文字以上含む
・1行(改行文字無し)
・半角全角で70文字以上100文字
・文中に「、」または「。」を1文字以上含む
606デフォルトの名無しさん
2023/01/07(土) 14:35:34.78ID:bXxrhZUn >>605
それはここじゃなくて JaneStyleのスレで聞いた方がよくね?
それはここじゃなくて JaneStyleのスレで聞いた方がよくね?
607デフォルトの名無しさん
2023/01/07(土) 17:50:57.40ID:IdmDw0D4 >>602
うるせーな死ねよハゲ
うるせーな死ねよハゲ
608デフォルトの名無しさん
2023/01/07(土) 19:04:16.19ID:B7GL4Qwr JaneStyleでの改行は\s<br>\sか?
実際の対象を見ないと分からないけどたとえばアンカーなんかも無いと分かってるなら
^(?=.*[、。])\s[^<]{70,100}\s$
特定の荒らしか何かを想定しているのかな
実際の対象を見ないと分からないけどたとえばアンカーなんかも無いと分かってるなら
^(?=.*[、。])\s[^<]{70,100}\s$
特定の荒らしか何かを想定しているのかな
609デフォルトの名無しさん
2023/01/07(土) 19:42:28.54ID:Zoa7JGj4 アンカータグは当然あるよ
5chならね
5chならね
610デフォルトの名無しさん
2023/01/13(金) 18:40:39.04ID:ZqEJpVNq そういうことじゃないんじゃないか
611デフォルトの名無しさん
2023/01/29(日) 18:48:08.66ID:cz1zZ3tj >>605
そのままchatgpt で聞いてみたよ
以下の正規表現を使用することで、1行 (改行文字無し)、半角全角で70文字以上100文字、文中に「、」または「。」を1文字以上含む条件を全て満たす文字列を抽出することができます。
ruby
Copy code
^(?=.{70,100}$)(?=.*[、。]).*$
この正規表現は、文字列が70文字以上100文字以下であり、文中に「、」または「。」を1文字以上含むことを保証します。
だってさ
そのままchatgpt で聞いてみたよ
以下の正規表現を使用することで、1行 (改行文字無し)、半角全角で70文字以上100文字、文中に「、」または「。」を1文字以上含む条件を全て満たす文字列を抽出することができます。
ruby
Copy code
^(?=.{70,100}$)(?=.*[、。]).*$
この正規表現は、文字列が70文字以上100文字以下であり、文中に「、」または「。」を1文字以上含むことを保証します。
だってさ
612デフォルトの名無しさん
2023/01/29(日) 21:21:58.64ID:O+Wk/2Eo 近頃はみんな
613デフォルトの名無しさん
2023/01/29(日) 22:30:48.24ID:9ooogxSi 薄くなったね
614デフォルトの名無しさん
2023/01/30(月) 01:55:35.57ID:GlHcGD1J 体裁を整える能力はピカイチだが、それが正しいという保証はないからなあ
ちゃんと使うにはまずその分野の知識が必要というジレンマ
ちゃんと使うにはまずその分野の知識が必要というジレンマ
615デフォルトの名無しさん
2023/01/30(月) 17:50:26.15ID:gh9uKCuR616デフォルトの名無しさん
2023/01/30(月) 21:13:06.03ID:TI/BqHZQ (?!).+
617デフォルトの名無しさん
2023/02/02(木) 00:14:23.96ID:fPL322j9 顔文字に見える正規表現を考えたい
(;*~_~*)
(;*~_~*)
618デフォルトの名無しさん
2023/02/04(土) 22:54:12.69ID:DlLJLfae 2023-02-04という書式の日付のデータがある時
その行で最初に出てきた-を年にしたい
正規表現でなんて書けばいいですか?
その行で最初に出てきた-を年にしたい
正規表現でなんて書けばいいですか?
619デフォルトの名無しさん
2023/02/04(土) 22:57:04.23ID:DlLJLfae 検索欄に(^.*?)(-)
置換欄に\1年
置換欄に\1年
620デフォルトの名無しさん
2023/02/05(日) 10:48:30.98ID:KWvYGjBb -(.*) → 年$1
621デフォルトの名無しさん
2023/02/11(土) 16:20:49.02ID:fAcJ3wf1 ●Regular Expressionの使用環境
WindowsのJScript
●検索か置換か?
検索
●説明
下記のような文字列があった場合、
[なんとか]から次の[なんとか]が出てくるまでの複数行を取り出したいんだけど、どうする?
自分はコレしか思いつかなかったんだけ
str.match(/^\[.*\][^\[]*/mg);
もっといい方法ある?
●対象データ(これってAviUtlのexoファイルです。
[424.0]
_name=音声ファイル
再生位置=0.00
再生速度=100.0
ループ再生=0
動画ファイルと連携=1
file=D:\PlayMemories\2023-02-09\C0002.MP4
[424.1]
_name=音量フェード
イン=0.00
アウト=3.00
[424.2]
_name=標準再生
音量=50.0
左右=0.0
WindowsのJScript
●検索か置換か?
検索
●説明
下記のような文字列があった場合、
[なんとか]から次の[なんとか]が出てくるまでの複数行を取り出したいんだけど、どうする?
自分はコレしか思いつかなかったんだけ
str.match(/^\[.*\][^\[]*/mg);
もっといい方法ある?
●対象データ(これってAviUtlのexoファイルです。
[424.0]
_name=音声ファイル
再生位置=0.00
再生速度=100.0
ループ再生=0
動画ファイルと連携=1
file=D:\PlayMemories\2023-02-09\C0002.MP4
[424.1]
_name=音量フェード
イン=0.00
アウト=3.00
[424.2]
_name=標準再生
音量=50.0
左右=0.0
622デフォルトの名無しさん
2023/02/11(土) 17:02:21.81ID:yc790R16 ^\[[^[]*\n(?=\n)
623デフォルトの名無しさん
2023/02/11(土) 17:47:19.77ID:4bXfwNL9 str.split('\n\n')
624デフォルトの名無しさん
2023/02/11(土) 18:25:52.14ID:G+Atp5X9 空行区切りとは限らない場合、ファイル名に[があるかもしれない場合
str.match(/^\[.*(?:\n(?!\[).*)*\n*/gm)
str.match(/^\[.*(?:\n(?!\[).*)*\n*/gm)
625デフォルトの名無しさん
2023/02/12(日) 00:39:26.16ID:mse6QHvr >>622-624
できました。すごい。
できました。すごい。
626デフォルトの名無しさん
2023/02/12(日) 12:08:20.65ID:2oU17ty6 [424.0] は、つまり、
行頭が[ で、行末が] の場合だけを、特別な命令と解釈するのだろ
行頭が[ で、行末が] の場合だけを、特別な命令と解釈するのだろ
627デフォルトの名無しさん
2023/02/12(日) 12:34:59.28ID:PBDCQhni こういうの非包含が使えたらすごい楽
^\[(?~^\[)
^\[(?~^\[)
628デフォルトの名無しさん
2023/02/12(日) 23:00:31.59ID:mse6QHvr629デフォルトの名無しさん
2023/02/14(火) 23:50:28.21ID:dTCCMwFb JavaScriptの正規表現で質問です
ある正規表現に合致し、ある正規表現に合致しない、という正規表現は可能でしょうか?
具体的には
任意数は0も含むものとして
任意数の大文字アルファベットのあとに、任意数の小文字アルファベットが続き、その後任意数の数字が続く文字列のうち
小文字のみ、数字のみの文字列を除外したいです(大文字のみのものは合致させたい)
合致例
ABab01
AAA0
aaa012
ABCDE
合致させたくない例
abcde
012345
000aaa
ある正規表現に合致し、ある正規表現に合致しない、という正規表現は可能でしょうか?
具体的には
任意数は0も含むものとして
任意数の大文字アルファベットのあとに、任意数の小文字アルファベットが続き、その後任意数の数字が続く文字列のうち
小文字のみ、数字のみの文字列を除外したいです(大文字のみのものは合致させたい)
合致例
ABab01
AAA0
aaa012
ABCDE
合致させたくない例
abcde
012345
000aaa
630デフォルトの名無しさん
2023/02/14(火) 23:57:34.39ID:XRqDNj0i 宿題ですか?
631デフォルトの名無しさん
2023/02/15(水) 00:01:55.99ID:GMMfGDKP 宿題かどうかで正規表現の書き方は変わりませんよね?
632デフォルトの名無しさん
2023/02/15(水) 00:52:40.53ID:F/CuEgLN できるけど全部正規表現でやらないほうがメンテしやすいぞ
633デフォルトの名無しさん
2023/02/15(水) 00:54:24.40ID:GMMfGDKP つまりif文で区切るほうが見やすいということですか?
634デフォルトの名無しさん
2023/02/15(水) 08:47:44.60ID:p2xlcd9z ([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([0-9]+)?
635デフォルトの名無しさん
2023/02/15(水) 10:37:15.75ID:5uY2Ajym636デフォルトの名無しさん
2023/02/15(水) 12:54:55.60ID:q8BaXLdM ABab
637デフォルトの名無しさん
2023/02/15(水) 14:01:59.87ID:N6Rs6EpM ([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([a-z]+)?([0-9]+)?
ですかね
ですかね
638デフォルトの名無しさん
2023/02/15(水) 14:05:43.89ID:VU7epY9U [A-Z]+[a-z]*[0-9]*|[a-z]+[0-9]+
639デフォルトの名無しさん
2023/02/15(水) 14:13:41.85ID:6puQI1n1 NG例に000aaaがあるということは
000aaaAA
とかもあるわけだよね
そしてこれは順序が違うからマッチさせたダメってことか?
000aaaAA
とかもあるわけだよね
そしてこれは順序が違うからマッチさせたダメってことか?
640デフォルトの名無しさん
2023/02/15(水) 14:30:32.69ID:u5Kc1xOf ^(?!$|[a-z]+$|[0-9]+$)[A-Z]*[a-z]*[0-9]*$
641デフォルトの名無しさん
2023/02/16(木) 22:56:05.33ID:Tpu7Mxzn 正規表現で*ではなく0文字以上n文字以下って指定の仕方どうやるんだっけ
*はセキュリティホールになるから使うなみたいなのをどこかで見たので
*はセキュリティホールになるから使うなみたいなのをどこかで見たので
642デフォルトの名無しさん
2023/02/16(木) 23:01:53.04ID:Tpu7Mxzn スマンぐぐったらすぐ出てきたわ
ReDoS攻撃というやつだな
正規表現が標準で使える言語でパターンマッチのタイムアウト設定できるやつってあんのかな
ReDoS攻撃というやつだな
正規表現が標準で使える言語でパターンマッチのタイムアウト設定できるやつってあんのかな
643デフォルトの名無しさん
2023/02/22(水) 02:52:40.50ID:Lq+l8VAY 勉強になった
644デフォルトの名無しさん
2023/02/28(火) 19:25:23.88ID:LpLAZFFY ●Regular Expressionの使用環境
秀丸エディタ
●検索か置換か?
置換
●説明
正規表現で加減算したいです
perlの場合これでできるそうです
検索:columnIndex([\d]+)
置換:columnIndex@{[$1+1]}
●対象データ
columnIndex001 = "aaa";
columnIndex002 = "bbb";
columnIndex003 = "ccc";
●希望する結果
columnIndex002 = "aaa";
columnIndex003 = "bbb";
columnIndex004 = "ccc";
秀丸エディタ
●検索か置換か?
置換
●説明
正規表現で加減算したいです
perlの場合これでできるそうです
検索:columnIndex([\d]+)
置換:columnIndex@{[$1+1]}
●対象データ
columnIndex001 = "aaa";
columnIndex002 = "bbb";
columnIndex003 = "ccc";
●希望する結果
columnIndex002 = "aaa";
columnIndex003 = "bbb";
columnIndex004 = "ccc";
645デフォルトの名無しさん
2023/02/28(火) 21:40:28.89ID:k7F1eRIt perlの置換の式はただのスクリプトとしての演算だからなあ
無理なんじゃね
無理なんじゃね
646デフォルトの名無しさん
2023/02/28(火) 21:52:42.51ID:3RvLxpuD 俺だったらエクセルに貼って分解して計算して足し込んでcsvに出力する
647デフォルトの名無しさん
2023/02/28(火) 22:16:00.68ID:HPZ5xkxF 秀丸にも専用のスクリプト言語的なのなかったっけ?
それ使えばワンチャンあるが素直に汎用のスクリプト言語使った方が楽かも
それ使えばワンチャンあるが素直に汎用のスクリプト言語使った方が楽かも
648デフォルトの名無しさん
2023/02/28(火) 22:25:04.50ID:LpLAZFFY そうかありがとう
B2&TEXT(C2+1,"000")&D2な感じでエクセルに計算させます
B2&TEXT(C2+1,"000")&D2な感じでエクセルに計算させます
649デフォルトの名無しさん
2023/03/05(日) 15:30:49.38ID:kbQORjCn chmateの名前欄ng正規表現について
ここの正規表現は拡張正規表現だよね?
ワッチョイ消しあぼーんは(?<!\))$だけど、この中の\って何?
それと\(ス[プ|ッ]+ Sd(5f|bf)の中の\って何?
正規表現なら\は直後のメタ文字打ち消しだけど拡張正規表現においては何を意味するの?
ここの正規表現は拡張正規表現だよね?
ワッチョイ消しあぼーんは(?<!\))$だけど、この中の\って何?
それと\(ス[プ|ッ]+ Sd(5f|bf)の中の\って何?
正規表現なら\は直後のメタ文字打ち消しだけど拡張正規表現においては何を意味するの?
650デフォルトの名無しさん
2023/03/05(日) 16:48:59.22ID:zxnSBXGX メタ文字消し
|のことならor
|のことならor
651デフォルトの名無しさん
2023/03/05(日) 17:13:11.22ID:/VGFBid9 今まさに書き込もうとしてた。ググったらchmateのNG表記も標準正規表現なんだな
俺が何で拡張正規表現かと勘違いしたかというと、|は標準正規表現では使えないからLinuxなら-Eをオプションに付けて拡張正規表現にする必要があると習ったから
chmateでは|が使えるけどメタ文字打ち消しのバックスラッシュも使うというのはどういう事なの?
俺が何で拡張正規表現かと勘違いしたかというと、|は標準正規表現では使えないからLinuxなら-Eをオプションに付けて拡張正規表現にする必要があると習ったから
chmateでは|が使えるけどメタ文字打ち消しのバックスラッシュも使うというのはどういう事なの?
652デフォルトの名無しさん
2023/03/05(日) 22:34:50.68ID:jasgpIrF >>642
rubyの3.2は出来ます。
https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/
Regexpのタイムアウトの導入
rubyの3.2は出来ます。
https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/
Regexpのタイムアウトの導入
653デフォルトの名無しさん
2023/03/25(土) 11:22:38.54ID:YDfCdrWh /~/という書き方のとき以外でスラッシュ/を\エスケープする必要があるケースはありますか?
654デフォルトの名無しさん
2023/04/17(月) 19:32:17.83ID:5c7uVWzN 「0」と「1」からなる文字列のうち、「0」と「1」を同数含む文字列にマッチする
正規表現は存在しません。
正規表現よりも強力な検索方法で↑の文字列にもマッチさせることができるようなソフトは
存在しますか?
正規表現は存在しません。
正規表現よりも強力な検索方法で↑の文字列にもマッチさせることができるようなソフトは
存在しますか?
655デフォルトの名無しさん
2023/04/17(月) 19:44:56.00ID:sl+3Awil python
656デフォルトの名無しさん
2023/04/17(月) 20:33:36.29ID:waI8rtvz つらい
657デフォルトの名無しさん
2023/04/17(月) 21:06:25.43ID:z5E2eHg0658デフォルトの名無しさん
2023/04/17(月) 21:29:53.48ID:W4QVtvW8 JavaScriptで書くかな
659デフォルトの名無しさん
2023/04/17(月) 23:02:23.02ID:HlIFmrYC 正規表現よりも「強力な」検索方法ってどう言う事?
それチェックするだけならBASICだって出来るだろうに
それチェックするだけならBASICだって出来るだろうに
660デフォルトの名無しさん
2023/04/17(月) 23:14:49.47ID:aBS+jUDM661デフォルトの名無しさん
2023/04/18(火) 00:49:04.02ID:HEwUJcz7662デフォルトの名無しさん
2023/04/18(火) 01:55:03.99ID:0xKKyM+T wwなんじゃこの無意味なやつww
663デフォルトの名無しさん
2023/04/18(火) 01:55:30.29ID:0xKKyM+T 全くチェックできてないやんwww
664デフォルトの名無しさん
2023/04/18(火) 03:16:09.61ID:+QStg837 正規表現だけで頑張りすぎる奴はアホ
665デフォルトの名無しさん
2023/04/18(火) 10:37:46.66ID:1M+dv0CB > 「0」と「1」を同数含む文字列にマッチする
これが部分文字列も含むのなら最初の「0111011110001100000…」のところだけでも
で01, 10とか01111000, 111000, 1100, 0011とか011101111000110000とか
他にもあるけどまあ沢山あるわな
こんなんチェックして何の意味があるのか知らんけど
これが部分文字列も含むのなら最初の「0111011110001100000…」のところだけでも
で01, 10とか01111000, 111000, 1100, 0011とか011101111000110000とか
他にもあるけどまあ沢山あるわな
こんなんチェックして何の意味があるのか知らんけど
666デフォルトの名無しさん
2023/04/18(火) 11:53:15.97ID:mLPBXdJt >>661のは01以外の文字が存在してるのを失念してるので、少しだけ修正
^([^01]|0[^01]*?(?1)*?1|1[^01]*?(?1)*?0)++$
^([^01]|0[^01]*?(?1)*?1|1[^01]*?(?1)*?0)++$
667デフォルトの名無しさん
2023/04/18(火) 11:55:59.03ID:mLPBXdJt あ、すまん
>「0」と「1」からなる文字列のうち
を忘れてた
>「0」と「1」からなる文字列のうち
を忘れてた
668デフォルトの名無しさん
2023/04/18(火) 12:04:05.08ID:mLPBXdJt おまけに>>666は冗長だったしね
^([^01]|0(?1)*?1|1(?1)*?0)++$
^([^01]|0(?1)*?1|1(?1)*?0)++$
669デフォルトの名無しさん
2023/04/18(火) 12:07:01.90ID:y8YzUN5p なぜある範囲の文字列を認識できる正規表現が重用されるのでしょうか?
たとえば、文脈自由文法により生成される文字列を認識できるような検索ソフトは
ないのでしょうか?
たとえば、文脈自由文法により生成される文字列を認識できるような検索ソフトは
ないのでしょうか?
670デフォルトの名無しさん
2023/04/18(火) 12:19:50.17ID:VZPIsbzr 何故妙な所でわざわざ改行を入れるのでしょうか?
671デフォルトの名無しさん
2023/04/19(水) 15:37:27.88ID:DhCp7Dkf たとえばHTMLの<title>の直後だけ判定したいときに
マッチしなかったら長いページの最後まで<title>~を探し続けるの無駄だと思うんだけど
<title>のところだけ見終わったら判定打ち切ることってできる?
マッチしなかったら長いページの最後まで<title>~を探し続けるの無駄だと思うんだけど
<title>のところだけ見終わったら判定打ち切ることってできる?
672デフォルトの名無しさん
2023/04/19(水) 17:20:57.30ID:WqdbOhNP673デフォルトの名無しさん
2023/04/19(水) 18:18:09.16ID:DhCp7Dkf >>672
ありがとう!
ありがとう!
674デフォルトの名無しさん
2023/04/19(水) 22:28:52.49ID:ndERcjBg675デフォルトの名無しさん
2023/05/10(水) 15:31:44.13ID:7WScgW4R 下記の文字列でナンバリングの重複を除去するにはどうすればいいですか?
かまいたちの知らんけど #37 #37 「梅沢富美男とドライブ旅!やりたいこと詰め込んだら喜ぶ、知らんけど」 [GAORA] 2023年05月10日.ts
千鳥の相席食堂 #199 #199 藤岡弘、&藤岡真威人の旅! ’田舎出身&ロケマスター芸人’の千鳥がツッ [スカイA] 2023年05月08日.ts
ナンバリングが同一かどうかを考慮しなければ下記で可能かなと思うのですが、
(#[0-9]{1,})[\S\s]*(#[0-9]{1,})
ナンバリングが同一である場合に除去するってことは可能なのでしょうか?
※「正規表現は、.NET Framework で提供される正規表現の全ての機能が使えます」ってヘルプにあります
かまいたちの知らんけど #37 #37 「梅沢富美男とドライブ旅!やりたいこと詰め込んだら喜ぶ、知らんけど」 [GAORA] 2023年05月10日.ts
千鳥の相席食堂 #199 #199 藤岡弘、&藤岡真威人の旅! ’田舎出身&ロケマスター芸人’の千鳥がツッ [スカイA] 2023年05月08日.ts
ナンバリングが同一かどうかを考慮しなければ下記で可能かなと思うのですが、
(#[0-9]{1,})[\S\s]*(#[0-9]{1,})
ナンバリングが同一である場合に除去するってことは可能なのでしょうか?
※「正規表現は、.NET Framework で提供される正規表現の全ての機能が使えます」ってヘルプにあります
676デフォルトの名無しさん
2023/05/10(水) 15:43:18.27ID:7WScgW4R [\S\s]* は 改行を考慮してみただけで何でもよかったので、無視してください。
677デフォルトの名無しさん
2023/05/10(水) 15:49:49.18ID:XkmajJ+H s/(#\d+ )\1/$1/
678デフォルトの名無しさん
2023/05/10(水) 15:56:15.66ID:yXmZBCRQ #37 #371
679デフォルトの名無しさん
2023/05/10(水) 16:24:45.76ID:XkmajJ+H680デフォルトの名無しさん
2023/05/10(水) 16:34:36.66ID:KWVZdtYA 誤爆しないかチェックしたかったんでしょ
そんな噛み付か無くても良かろうよ
そんな噛み付か無くても良かろうよ
681デフォルトの名無しさん
2023/05/10(水) 16:44:00.86ID:7WScgW4R682デフォルトの名無しさん
2023/05/10(水) 16:52:01.37ID:7WScgW4R あ、キャプションってやつですかね。
こうなか?
s/(.*)(#\d+ )\2(.*)/$1 $2 $3/
こうなか?
s/(.*)(#\d+ )\2(.*)/$1 $2 $3/
683デフォルトの名無しさん
2023/05/10(水) 16:52:49.70ID:7WScgW4R こうかな
684デフォルトの名無しさん
2023/05/10(水) 16:57:22.57ID:XkmajJ+H 前後を不定長にするとバックトラックの量が半端じゃなくなるよ
数千倍数万倍それ以上の場合数にあっという間になるので
どれほど爆発的に増えるか考えてみてくれ
数千倍数万倍それ以上の場合数にあっという間になるので
どれほど爆発的に増えるか考えてみてくれ
685デフォルトの名無しさん
2023/05/10(水) 17:23:53.71ID:H/PxYykp 正規表現はChatGPTと相性いいなぁ
すげー間違ったことも返されるけど検証もさせられるしやテストケースも生成出来て超便利
すげー間違ったことも返されるけど検証もさせられるしやテストケースも生成出来て超便利
686デフォルトの名無しさん
2023/05/10(水) 18:11:00.72ID:XkmajJ+H687デフォルトの名無しさん
2023/05/18(木) 00:59:59.60ID:GLOCdhwM ハゲとフサの混在からハゲを排除したい
688デフォルトの名無しさん
2023/05/18(木) 09:45:41.67ID:HWVU1A6n replace(/ハゲ/g, 'ヅラ')
689デフォルトの名無しさん
2023/05/21(日) 18:08:25.80ID:T9C8dxe0 \Kってどうゆうときに使うんですかね?
690デフォルトの名無しさん
2023/05/22(月) 23:09:40.07ID:lUHZhpO8 安心して下さい\Kはいてますよ
$& = はいてますよ
$& = はいてますよ
691デフォルトの名無しさん
2023/05/23(火) 15:16:49.72ID:5w9lz5Mr そちらにはいてますか
692デフォルトの名無しさん
2023/05/27(土) 21:08:35.92ID:HxAuQBVD 特定の文字列が2回以上なければ削除したい
$aa=~s/hoge// if $aa!~/.+hoge.+hoge.+/;
正規表現一発で出来ませんか
$aa=~s/hoge// if $aa!~/.+hoge.+hoge.+/;
正規表現一発で出来ませんか
693デフォルトの名無しさん
2023/05/27(土) 22:49:21.84ID:Jh5M5XKC s/\A(?![\s\S]*(砂沙美魔法少女クラブ)[\s\S]*\1)([\s\S]*)\1([\s\S]*)\z/$2$3/
694デフォルトの名無しさん
2023/05/28(日) 06:07:20.35ID:exFpSO/0 s/(hoge.*hoge)|hoge/$1/
s/hoge.*hoge\K|hoge//
s/hoge.*hoge(*SKIP)(*FAIL)|hoge//
s/(hoge)(.*\1\K)?//
https://regex101.com/r/qoyDnZ/1
s/hoge.*hoge\K|hoge//
s/hoge.*hoge(*SKIP)(*FAIL)|hoge//
s/(hoge)(.*\1\K)?//
https://regex101.com/r/qoyDnZ/1
695デフォルトの名無しさん
2023/05/28(日) 10:23:23.66ID:fg1fsMga s/みさおちゃん(?:.*みさおちゃん(*COMMIT))?//
696デフォルトの名無しさん
2023/05/28(日) 12:43:42.23ID:yjwdVP6E 説明不足でした
$aa=~s/.+hoge.+\n// if $aa!~/hoge.+hoge/s;
これなぜにかダメです
$aa=~s/(hoge.+hoge)|[^\n]+hoge[^\n]+\n/$1/s;
$aa=~s/.+hoge.+\n// if $aa!~/hoge.+hoge/s;
これなぜにかダメです
$aa=~s/(hoge.+hoge)|[^\n]+hoge[^\n]+\n/$1/s;
697デフォルトの名無しさん
2023/05/28(日) 14:47:06.90ID:6Y81pqVN ダメなのは左のhogeより先に右の[^\n]+hogeがマッチを始めるから
左が先になるように右に合わせる
左が先になるように右に合わせる
698デフォルトの名無しさん
2023/05/28(日) 15:02:19.22ID:yjwdVP6E 初歩的でしたね、ありがとうございます
699デフォルトの名無しさん
2023/05/31(水) 00:20:37.60ID:Dm7F+2f1 「-」の無い電話番号に「-」を入れるには?
700デフォルトの名無しさん
2023/05/31(水) 07:23:21.12ID:X455hjkS 国際電話とかあると面戸だね
701デフォルトの名無しさん
2023/05/31(水) 08:55:50.76ID:t6+qFJ/7 >>700
携帯番号以外は不可能じゃないかな
携帯番号以外は不可能じゃないかな
702デフォルトの名無しさん
2023/05/31(水) 18:03:07.79ID:wXMZ1Y1H 区切り位置が変わるから全部羅列するしかないね
それも時々更新する必要がある
それも時々更新する必要がある
703デフォルトの名無しさん
2023/06/02(金) 21:23:49.13ID:XcfIYH3W704デフォルトの名無しさん
2023/06/03(土) 16:20:02.62ID:p6l+hu28705デフォルトの名無しさん
2023/06/03(土) 22:05:33.82ID:vWJZBL5V 愛は行動。言葉だけではダメ
706デフォルトの名無しさん
2023/06/04(日) 00:25:20.56ID:FmV4cjgS もう冷めました
707デフォルトの名無しさん
2023/06/16(金) 20:08:06.56ID:BLiKvBT9 Perl v5.38.0-RC1
708デフォルトの名無しさん
2023/06/18(日) 00:06:22.30ID:7IbgNtYk NTTと早大、誤った正規表現の文字列抽出を自動で修正する技術を発表
japan.zdnet.com/article/35205348/
perl-5.38.0-RC1 perlre.pod
metacpan.org/release/RJBS/perl-5.38.0-RC1/view/pod/perlre.pod
(鬼車) 不在機能群の入れ子 の動作テスト集
github.com/tonco-miyazawa/regex_etc/blob/master/MEMO_onig/abcent/nesting.txt
japan.zdnet.com/article/35205348/
perl-5.38.0-RC1 perlre.pod
metacpan.org/release/RJBS/perl-5.38.0-RC1/view/pod/perlre.pod
(鬼車) 不在機能群の入れ子 の動作テスト集
github.com/tonco-miyazawa/regex_etc/blob/master/MEMO_onig/abcent/nesting.txt
709デフォルトの名無しさん
2023/06/18(日) 14:54:23.24ID:PO9vLDeK >>708
これは色んな意味でおかしい。まず、画像で例示しているURLだがドメインレベルに ? は
使用できない(エラーになる)。正規表現自身もURLということをチェックしていない。最低限、
スキームが https? で始まり、ID=文字列(アルファベット限定)を含む書式の、文字列のみを
抽出するコードを(ここに直接書くとエラーを食らっているので)貼っておく。
https://pastebin.com/V1DVjsQd
これは色んな意味でおかしい。まず、画像で例示しているURLだがドメインレベルに ? は
使用できない(エラーになる)。正規表現自身もURLということをチェックしていない。最低限、
スキームが https? で始まり、ID=文字列(アルファベット限定)を含む書式の、文字列のみを
抽出するコードを(ここに直接書くとエラーを食らっているので)貼っておく。
https://pastebin.com/V1DVjsQd
710デフォルトの名無しさん
2023/06/18(日) 15:04:09.09ID:PO9vLDeK 訂正。>709で貼ったコードは正しく動作するががコメントに(ここに貼った際に試行錯誤した
せいで) ? が抜けていた。趣旨は同じものなので、↓を参照して下さい。
https://pastebin.com/RQ5uj62f
せいで) ? が抜けていた。趣旨は同じものなので、↓を参照して下さい。
https://pastebin.com/RQ5uj62f
711デフォルトの名無しさん
2023/06/18(日) 15:53:25.97ID:uv5oAAX5712デフォルトの名無しさん
2023/06/18(日) 16:12:09.00ID:uv5oAAX5 「正規表現を用いた文字列抽出の例」図は「誤った正規表現」の例なんじゃないかなあ
例の正規表現では ~.com?fakeID=DEF にもマッチしてしまう
例の正規表現では ~.com?fakeID=DEF にもマッチしてしまう
713デフォルトの名無しさん
2023/06/18(日) 16:13:51.73ID:PO9vLDeK >>711
あなたが示している[1]のsyntax diagram(構文図)[2]にあるように、? はqueryを示す文字で
path( / )以前のドメイン名部分には出てこず、最低限 / の後でなければならないはず。
[1] https://en.wikipedia.org/wiki/URL
[2] https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/URI_syntax_diagram.svg/1280px-URI_syntax_diagram.svg.png
あなたが示している[1]のsyntax diagram(構文図)[2]にあるように、? はqueryを示す文字で
path( / )以前のドメイン名部分には出てこず、最低限 / の後でなければならないはず。
[1] https://en.wikipedia.org/wiki/URL
[2] https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/URI_syntax_diagram.svg/1280px-URI_syntax_diagram.svg.png
714デフォルトの名無しさん
2023/06/19(月) 17:12:20.20ID:a4eWUm7x >色んな意味でおかしい
同意。本当にこの例をNTTの技術者が作ったの?と思ってしまった。
広報担当の事務員が頑張って作った例だと言われたら納得出来るw
同意。本当にこの例をNTTの技術者が作ったの?と思ってしまった。
広報担当の事務員が頑張って作った例だと言われたら納得出来るw
715デフォルトの名無しさん
2023/06/20(火) 13:11:10.13ID:AvErps2d これは、>>712の人も言ってるように「悪い見本」か、あるいは「プレスリリース用にめっちゃ簡略化した例」のどちらかかと思う
個人的には悪い見本の方かと思う
「?」と「ID」の間のスペースとか気持ち悪いし
個人的には悪い見本の方かと思う
「?」と「ID」の間のスペースとか気持ち悪いし
716デフォルトの名無しさん
2023/06/21(水) 01:04:22.29ID:LPKmcd4s メールアドレスは誤ったアドレスを発行して運用してるところがあると対応せにゃ仕方ないけど
URLは誰もアクセスできないだけで終わるんだろうな
URLは誰もアクセスできないだけで終わるんだろうな
717デフォルトの名無しさん
2023/06/21(水) 02:01:06.48ID:FL3bkV8O 質問
ある文字列の中に、4桁の数字が出た場合、文字列を区切るという目的で正規表現を使いたいです
let hoge="....";
hoge.split(/\d{4}/)
しかし上記の正規表現だと、例えば6桁の数字でも区切ってしまうため、これを4桁に限定するためにはどうしたらよいでしょうか?
ある文字列の中に、4桁の数字が出た場合、文字列を区切るという目的で正規表現を使いたいです
let hoge="....";
hoge.split(/\d{4}/)
しかし上記の正規表現だと、例えば6桁の数字でも区切ってしまうため、これを4桁に限定するためにはどうしたらよいでしょうか?
718デフォルトの名無しさん
2023/06/21(水) 02:36:29.87ID:HRXsYHZK (?<!\d)\d{4}(?!\d)
719デフォルトの名無しさん
2023/06/21(水) 06:20:04.42ID:FL3bkV8O ありがとうございます
720デフォルトの名無しさん
2023/06/21(水) 07:00:29.04ID:8S43aXN3 修正前 .*(..)?
修正後 .*?(.[^z])?
"abcd"を与えて受理される文字列
修正前 ""
修正後 "ab"
受理してもらいたかった文字列 "cd"
URLからIDを取り出すほうは画像に入るようにデフォルメする必要があるから
おかしいURLになるのはやむを得ないと思う
> (?:[&].*)?
ただこれはちょっと気持ち悪い
これがあっても無くても結果は変わらないから付ける必要なかった
正規表現に詳しい人が"&"を単体で文字クラスに入れることはあまりない(たまにはいる)
新技術のアプリを実際に試させてくれないかな?
提供してもらえれば無償でテストするよ
修正後 .*?(.[^z])?
"abcd"を与えて受理される文字列
修正前 ""
修正後 "ab"
受理してもらいたかった文字列 "cd"
URLからIDを取り出すほうは画像に入るようにデフォルメする必要があるから
おかしいURLになるのはやむを得ないと思う
> (?:[&].*)?
ただこれはちょっと気持ち悪い
これがあっても無くても結果は変わらないから付ける必要なかった
正規表現に詳しい人が"&"を単体で文字クラスに入れることはあまりない(たまにはいる)
新技術のアプリを実際に試させてくれないかな?
提供してもらえれば無償でテストするよ
721デフォルトの名無しさん
2023/06/21(水) 07:17:00.34ID:Z+I+bAqU 「abczは拒否」→「なるほど末尾zは拒否だな」
えー…
えー…
722デフォルトの名無しさん
2023/06/21(水) 07:38:48.98ID:SbeXWTV7 書いてないけど前提として完全一致のつもりだったんだろうな
723デフォルトの名無しさん
2023/06/21(水) 10:41:38.55ID:8S43aXN3 jsって完全一致が前提になるオプションってある?
それがあったとしても .*?(.[^z])? はAutoだが
それがあったとしても .*?(.[^z])? はAutoだが
724デフォルトの名無しさん
2023/06/21(水) 11:16:26.32ID:ld9dVlA3 >>723
シングルラインモード(dotAll)で ^ と $ を使えば良いだけでは?
シングルラインモード(dotAll)で ^ と $ を使えば良いだけでは?
725デフォルトの名無しさん
2023/06/21(水) 12:14:35.15ID:8S43aXN3 ^と$を使うつもりなら画像の中でも使うと思う
見やすくするために省いてるだけなのかな?
そうだとしても .*?(.[^z])? はAutoだが
見やすくするために省いてるだけなのかな?
そうだとしても .*?(.[^z])? はAutoだが
726デフォルトの名無しさん
2023/06/21(水) 22:34:06.87ID:g2ig9yOY ニュー速(嫌儲)で、近頃半角記号を6文字だけとかの書き込みがあります
なんとかNGを作りたいのですがうまく行きません
行頭から記号だけの文字列で4~8文字、って想定でこんなの作ってみたんですが、httpで始まるurlも引っかけてしまいます
^[ -/:-@\[-~]{4,8}
例えばこんなスレなんですが
https://greta.5ch.net/test/read.cgi/poverty/1687352512/
詳しい方、正規表現作ってもらえないでしょうか?
なんとかNGを作りたいのですがうまく行きません
行頭から記号だけの文字列で4~8文字、って想定でこんなの作ってみたんですが、httpで始まるurlも引っかけてしまいます
^[ -/:-@\[-~]{4,8}
例えばこんなスレなんですが
https://greta.5ch.net/test/read.cgi/poverty/1687352512/
詳しい方、正規表現作ってもらえないでしょうか?
727デフォルトの名無しさん
2023/06/22(木) 09:30:57.52ID:nJDgsm3N そういうのは専ブラのNGスレでやるべきだね、ユーザー同士で情報共有にもなるから
正規表現を適用する対象がHTMLでなくdatだったりでユーザーでないと作れない場合もある
記号だけにマッチさせたいなら[!-/:-@\[-`{-~]だが、この前後に付ける正規表現は
お使いの専ブラスレで聞いてくれ
正規表現を適用する対象がHTMLでなくdatだったりでユーザーでないと作れない場合もある
記号だけにマッチさせたいなら[!-/:-@\[-`{-~]だが、この前後に付ける正規表現は
お使いの専ブラスレで聞いてくれ
728デフォルトの名無しさん
2023/06/22(木) 09:42:44.65ID:TTIYA8nl そこみる限りでは3パターンしかなくない?
何かしらの絵文字とかが化けて出てるだけとか。
(\$\@\:\^\()|(\_\]\#\)\&\$\}\>)|(\!\^\*\%\&\$\:\~)
何かしらの絵文字とかが化けて出てるだけとか。
(\$\@\:\^\()|(\_\]\#\)\&\$\}\>)|(\!\^\*\%\&\$\:\~)
729デフォルトの名無しさん
2023/06/22(木) 10:08:56.55ID:L6AKAbfA 726です
726のこれはうまく動かない、と書いたのは、文字間にスペース入ってました
727さんのに変えたら誤動作無く動作しました
^[!-/:-@\[-`{-~]{5,11}
ちなみに、android板に以下のスレを発見しました
しかし、荒らされてて機能して無さそう
他にこっちの方が良いよ、っておすすめのスレはありますかね?
オススメのNGワード
https://egg.5ch.net/test/read.cgi/android/1576334383/
726のこれはうまく動かない、と書いたのは、文字間にスペース入ってました
727さんのに変えたら誤動作無く動作しました
^[!-/:-@\[-`{-~]{5,11}
ちなみに、android板に以下のスレを発見しました
しかし、荒らされてて機能して無さそう
他にこっちの方が良いよ、っておすすめのスレはありますかね?
オススメのNGワード
https://egg.5ch.net/test/read.cgi/android/1576334383/
730デフォルトの名無しさん
2023/06/22(木) 10:55:55.92ID:nJDgsm3N こちらはそちらが何を使ってるかも分からないので勧めようが無い件
問題は正規表現の後ろに付けるほうなんだけど何を使ってるかで変わると思う
今のままでは12文字以上記号が続いててもNGになっちゃうね
問題は正規表現の後ろに付けるほうなんだけど何を使ってるかで変わると思う
今のままでは12文字以上記号が続いててもNGになっちゃうね
731デフォルトの名無しさん
2023/06/22(木) 13:11:08.52ID:L6AKAbfA >>730
chmateなんです
その後、2文字だけのにも対応するためこうなりました。言われた通り後ろ側も条件付けました
^[!-/:-@\[-`{-~]{2,11}$
ここがひどいです
https://greta.5ch.net/test/read.cgi/poverty/1687400738/
chmateなんです
その後、2文字だけのにも対応するためこうなりました。言われた通り後ろ側も条件付けました
^[!-/:-@\[-`{-~]{2,11}$
ここがひどいです
https://greta.5ch.net/test/read.cgi/poverty/1687400738/
732デフォルトの名無しさん
2023/06/22(木) 14:46:12.28ID:vRMLRvgd 方言がひどい記述だけど(PCRE2とbregonig.dllでは大丈夫)
^ ?(((?!&gt;?|&lt;?)[[:punct:]])+|&gt;?|&lt;?){2,} ?$
^ ?(((?!&gt;?|&lt;?)[[:punct:]])+|&gt;?|&lt;?){2,} ?$
733デフォルトの名無しさん
2023/06/22(木) 14:53:40.61ID:vRMLRvgd734デフォルトの名無しさん
2023/06/22(木) 23:53:09.33ID:nJDgsm3N GJ
[[:punct:]] これいいね、覚えとこ
(()+){2,}は繰り返しが二重になっててReDosを狙われる懸念があるから
++や(?>)を使ったほうがいいかも
正規表現エンジンの内部でも対策はしてると思うけど念のために
[[:punct:]] これいいね、覚えとこ
(()+){2,}は繰り返しが二重になっててReDosを狙われる懸念があるから
++や(?>)を使ったほうがいいかも
正規表現エンジンの内部でも対策はしてると思うけど念のために
735デフォルトの名無しさん
2023/06/23(金) 01:33:06.45ID:gmkpJif8 >>734
+が入ってるのはダメじゃん
除いてくれ
作ってる途中で紛れ込んだものだね
なおbregonig.dllだと
^ ?(?:\p{punct}|&gt;?|&lt;?){4,} ?$
^ ?(?:[[:punct:]]|&gt;?|&lt;?){4,} ?$
でもいけちゃうんだよな
ちょっと不思議
+が入ってるのはダメじゃん
除いてくれ
作ってる途中で紛れ込んだものだね
なおbregonig.dllだと
^ ?(?:\p{punct}|&gt;?|&lt;?){4,} ?$
^ ?(?:[[:punct:]]|&gt;?|&lt;?){4,} ?$
でもいけちゃうんだよな
ちょっと不思議
736デフォルトの名無しさん
2023/06/23(金) 02:02:21.28ID:qwakAXsj and検索みたいなのってできない?
今まで[ABC]と[あいう]は2回に分けて検索してたけど1回で済ませたい
今まで[ABC]と[あいう]は2回に分けて検索してたけど1回で済ませたい
737デフォルトの名無しさん
2023/06/23(金) 02:09:08.88ID:gmkpJif8 >>736
^(?=.*?ABC)(?=.*?あいう)(?=.*?甲乙丙)
^(?=.*?ABC)(?=.*?あいう)(?=.*?甲乙丙)
738デフォルトの名無しさん
2023/06/23(金) 02:35:28.92ID:qwakAXsj >>737
感謝
感謝
739デフォルトの名無しさん
2023/06/23(金) 12:02:08.17ID:2Ntzjt3B [文章]
AAAaiueo111 xxx
aaaaa
AAAkakikukeko xxx
b b b
AAAsasisuseso
ccccc
AAAtatituteto000
ddd123
上記の文章で先頭がAAAの行だけ抜き出して、さらにAAAを削除して末尾にxxxがある場合はxxxも削除する正規表現を考えています。
使用するのはサクラエディタの置換機能で、
置換前 AAA(.*)\r |.*\r\n
置換後 $1
で実行するとAAAの行だけ抜き出してAAAも削除出来ましたがxxxが残ります。2回に分けて置換すればいいのですが、面倒なので1回でxxxまで削除する方法があれば教えてください。
AAAaiueo111 xxx
aaaaa
AAAkakikukeko xxx
b b b
AAAsasisuseso
ccccc
AAAtatituteto000
ddd123
上記の文章で先頭がAAAの行だけ抜き出して、さらにAAAを削除して末尾にxxxがある場合はxxxも削除する正規表現を考えています。
使用するのはサクラエディタの置換機能で、
置換前 AAA(.*)\r |.*\r\n
置換後 $1
で実行するとAAAの行だけ抜き出してAAAも削除出来ましたがxxxが残ります。2回に分けて置換すればいいのですが、面倒なので1回でxxxまで削除する方法があれば教えてください。
740デフォルトの名無しさん
2023/06/23(金) 13:06:42.48ID:gnUd2/2c AAAで始まらない1行|先頭のAAA|末尾のxxx
741デフォルトの名無しさん
2023/06/23(金) 13:54:57.82ID:WBrlaKRC ^AAA|xxx$|^.*\r\n → 削除
742デフォルトの名無しさん
2023/06/23(金) 15:20:23.65ID:2Ntzjt3B743デフォルトの名無しさん
2023/06/23(金) 19:05:48.89ID:zWmLGOhD ^AAA([^\r\n]*?)(?:xxx)?$|^[^\r\n]*(?:\r\n|[\r\n])?
$1
アク菌で書けませんぞテスト
$1
アク菌で書けませんぞテスト
744734
2023/06/23(金) 19:21:25.94ID:zWmLGOhD >>735
PCRE2では\p{Punct}は存在しないんだね
www.pcre.org/current/doc/html/pcre2syntax.html
[\p{P}\p{S}]で代用になりそう、全角文字にもマッチするけど
プロパティがこれだけいろいろあると全部を把握するだけでも大変だなぁ
> +
言われてみれば+があるのはおかしいw 忘れ物だったのかw
PCRE2では\p{Punct}は存在しないんだね
www.pcre.org/current/doc/html/pcre2syntax.html
[\p{P}\p{S}]で代用になりそう、全角文字にもマッチするけど
プロパティがこれだけいろいろあると全部を把握するだけでも大変だなぁ
> +
言われてみれば+があるのはおかしいw 忘れ物だったのかw
745デフォルトの名無しさん
2023/06/23(金) 21:34:05.58ID:gmkpJif8 >>744
不思議な点は
PCRE2だと、[[:punct:]]で&が先にキャッチされて&gt;のgt;が取り残されてしまうので
|&gt;とあってもマッチしなくなる
bregonig.dllだと
&gt;にキャッチされてマッチする(punctより&gt;が優先される
(PCRE2は最短マッチが優先されて、bregonigは最長マッチが優先なのか?)
これはorの記述の順序には関係なく左に(先に)&gt;を書いても結果は同じ
不思議な点は
PCRE2だと、[[:punct:]]で&が先にキャッチされて&gt;のgt;が取り残されてしまうので
|&gt;とあってもマッチしなくなる
bregonig.dllだと
&gt;にキャッチされてマッチする(punctより&gt;が優先される
(PCRE2は最短マッチが優先されて、bregonigは最長マッチが優先なのか?)
これはorの記述の順序には関係なく左に(先に)&gt;を書いても結果は同じ
746デフォルトの名無しさん
2023/06/23(金) 22:07:00.56ID:zWmLGOhD ここのテストサイトで regex101.com/
^([[:punct:]]|>|<)$ を < にマッチさせたら成功したけど
本物のPCRE2ではマッチしないの?余計な半角スペースが入ってたりしない?
それで>>732に要らないはずの先読みを入れてたんだね
これがマッチしないならバグかも知れない
もしまたゴミとかのうっかりミスが原因だったとしても気にしないでね、俺もよくやらかすから
^([[:punct:]]|>|<)$ を < にマッチさせたら成功したけど
本物のPCRE2ではマッチしないの?余計な半角スペースが入ってたりしない?
それで>>732に要らないはずの先読みを入れてたんだね
これがマッチしないならバグかも知れない
もしまたゴミとかのうっかりミスが原因だったとしても気にしないでね、俺もよくやらかすから
747デフォルトの名無しさん
2023/06/23(金) 22:09:21.21ID:zWmLGOhD あ、&が化けちゃった
^([[:punct:]]|>|<)$ を > にマッチさせて
^([[:punct:]]|>|<)$ を > にマッチさせて
748デフォルトの名無しさん
2023/06/23(金) 22:31:35.63ID:gmkpJif8749デフォルトの名無しさん
2023/06/23(金) 22:36:28.09ID:gmkpJif8 今考え付くのは
^(?>[[:punct:]]|&gt;)+
とか
&gt;のみ書いといて&lt;に引っ掛かったとかとかかなあ?
^(?>[[:punct:]]|&gt;)+
とか
&gt;のみ書いといて&lt;に引っ掛かったとかとかかなあ?
750デフォルトの名無しさん
2023/06/23(金) 22:47:37.55ID:gmkpJif8 さすがに(?>)を使って気づかないわけないから(使った覚えもないし)
恥ずかしいけど、gt;とlt;の取り違えをやらかした気がする
恥ずかしいけど、gt;とlt;の取り違えをやらかした気がする
751デフォルトの名無しさん
2023/06/23(金) 23:16:11.04ID:zWmLGOhD そういうこと俺もあるから分かるわーw
頭が回ってないときに動作確認するとしっかり確認出来てないのに確認したつもりに
なってしまうんだよなぁ、だから休憩と二重三重の確認はめちゃ大事
間違えた原因は分からないけどとりあえずゆっくり休んでくれw
頭が回ってないときに動作確認するとしっかり確認出来てないのに確認したつもりに
なってしまうんだよなぁ、だから休憩と二重三重の確認はめちゃ大事
間違えた原因は分からないけどとりあえずゆっくり休んでくれw
752デフォルトの名無しさん
2023/06/24(土) 00:27:07.24ID:X4q59utv 勘違いした理由が分かった
^([[:punct:]]|&gt;)+
これをやると&で切れちゃうんだ
s/([[:punct:]]|&gt;)+//g
をやるとgtが置換されずに残る
末尾に$とか目標物を付ければ切れないんだが
さてどうして切れるのか誰か教えて
^([[:punct:]]|&gt;)+
これをやると&で切れちゃうんだ
s/([[:punct:]]|&gt;)+//g
をやるとgtが置換されずに残る
末尾に$とか目標物を付ければ切れないんだが
さてどうして切れるのか誰か教えて
753デフォルトの名無しさん
2023/06/24(土) 00:36:09.10ID:X4q59utv やっぱ左側が優先なのか
(&gt;|[[:punct:]])
と入れ替えたら切れない
(&gt;|[[:punct:]])
と入れ替えたら切れない
754デフォルトの名無しさん
2023/06/24(土) 09:56:18.97ID:o3ZfF1Sp755751
2023/06/24(土) 11:05:23.89ID:QPqcCtG1756デフォルトの名無しさん
2023/06/24(土) 11:10:05.28ID:QPqcCtG1 あ、NTTと早大のやつは正規表現を^と$で囲ってから動かして
757デフォルトの名無しさん
2023/06/24(土) 11:21:09.38ID:X4q59utv758デフォルトの名無しさん
2023/06/24(土) 16:54:14.04ID:QPqcCtG1 >最大の最長を探す記述
ちょっと探してみたらPHPのオプションにあった
www.php.net/manual/ja/function.mb-regex-set-options.php
> l 最も長くマッチするものを探す
この処理ってすごく重くなりそうなイメージがあったけどそうでもないのかな
ちょっと探してみたらPHPのオプションにあった
www.php.net/manual/ja/function.mb-regex-set-options.php
> l 最も長くマッチするものを探す
この処理ってすごく重くなりそうなイメージがあったけどそうでもないのかな
759デフォルトの名無しさん
2023/06/24(土) 17:35:54.33ID:X4q59utv PHPだけじゃなあ
結局、事故らない為には長さの違うダブリは取り除いておくほうが無難ってことか
結局、事故らない為には長さの違うダブリは取り除いておくほうが無難ってことか
760743
2023/06/25(日) 11:57:31.39ID:YeZqv3UB >> 759
考えてみると長いほうを前にしても短いほうがマッチ出来なくて詰むケースがあるのか
正規表現むずかしい
>> 740 741 754
改行コードがLFやCRのみの場合に対応してない
最後の行がAAAで始まらない場合、行末の改行が無い場合に削除されない
743は両方に対応しているけど740の発想のほうがシンプルで優れてるね
あとサクラエディタでは\Rが使えるので使ったほうが簡単に書けそう
考えてみると長いほうを前にしても短いほうがマッチ出来なくて詰むケースがあるのか
正規表現むずかしい
>> 740 741 754
改行コードがLFやCRのみの場合に対応してない
最後の行がAAAで始まらない場合、行末の改行が無い場合に削除されない
743は両方に対応しているけど740の発想のほうがシンプルで優れてるね
あとサクラエディタでは\Rが使えるので使ったほうが簡単に書けそう
761デフォルトの名無しさん
2023/06/27(火) 21:16:47.75ID:TnfGmDZI 最長一致マッチが有効のとき、下の正規表現は何にマッチすべき?
"abcd" =~ /abc\Kd|abc/;
\Kの前を文字列長に含めるべきか否かを考えて下さい
"abcd" =~ /abc\Kd|abc/;
\Kの前を文字列長に含めるべきか否かを考えて下さい
762デフォルトの名無しさん
2023/06/28(水) 12:49:16.44ID:vk3PbjZ1 元より最左ルールに基づいてdよりabcにマッチすべきとはならんやろ
763761
2023/06/28(水) 13:05:55.77ID:m0cBggZC764デフォルトの名無しさん
2023/06/29(木) 11:57:49.56ID:0JMnG4u5 最長一致する正規表現が有効の場合
1、「abc」「あ」
2、「て゛」「で」
A. 前が長い
B. 同じ長さ
C. 後ろが長い
1、「abc」「あ」
2、「て゛」「で」
A. 前が長い
B. 同じ長さ
C. 後ろが長い
765デフォルトの名無しさん
2023/07/02(日) 20:25:06.40ID:/BVUs+ug 奥が深すぎる
766デフォルトの名無しさん
2023/07/06(木) 13:17:43.04ID:GbtWdAMV twitter.com/k_takata/status/1676247372731662336
>正規表現技術入門が第2刷増刷
おめでとうございます
bregonig.dllやonigmoにはいつもお世話になってます
vimは知りませんw
>正規表現技術入門が第2刷増刷
おめでとうございます
bregonig.dllやonigmoにはいつもお世話になってます
vimは知りませんw
767デフォルトの名無しさん
2023/07/06(木) 17:43:12.24ID:SQbV6Whm JaneStyleであぼーんにつかいたいのですが、
アウアウウー Sa47-runv [106.131.26.222]
47
runv
131.26.222
この3つが変わる場合の正規表現ってどうかいたらよいでしょうか?
アウアウウー Sa47-runv [106.131.26.222]
47
runv
131.26.222
この3つが変わる場合の正規表現ってどうかいたらよいでしょうか?
768デフォルトの名無しさん
2023/07/06(木) 20:37:36.61ID:GbtWdAMV Jane Styleの仕様が分からないけどこれでいける?
(?i)アウアウウー\s*Sa[a-z\d]{2}-[a-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
(?i)アウアウウー\s*Sa[a-z\d]{2}-[a-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
769デフォルトの名無しさん
2023/07/06(木) 21:30:05.44ID:7Yxy824T770デフォルトの名無しさん
2023/07/06(木) 21:54:51.51ID:7Yxy824T771デフォルトの名無しさん
2023/07/06(木) 21:55:53.42ID:gWNyo9yQ いやそれでいけるでしょ
(?i)はデフォなので要らないけど
ダメなら設定の仕方が悪いか、既に表示されているものにNGを設定したんで
設定前の表示が表示されたままで再描画をやってないのでNGが表示に反映されてないかのどっちか
(?i)はデフォなので要らないけど
ダメなら設定の仕方が悪いか、既に表示されているものにNGを設定したんで
設定前の表示が表示されたままで再描画をやってないのでNGが表示に反映されてないかのどっちか
772デフォルトの名無しさん
2023/07/06(木) 22:11:26.50ID:GbtWdAMV 動いて良かった、正規表現の勉強頑張れーw
771さんもありがとう
771さんもありがとう
773デフォルトの名無しさん
2023/07/06(木) 22:11:33.07ID:4RAXuAwI ちなみにワッチョイの下4桁、runvの部分は大文字もありうるから
その正規表現すり抜けするかも
その正規表現すり抜けするかも
774デフォルトの名無しさん
2023/07/06(木) 22:16:17.63ID:gWNyo9yQ (?i)が付いてるし、なくてもそれがデフォだから大丈夫だよ
775デフォルトの名無しさん
2023/07/06(木) 22:21:43.88ID:7Yxy824T >>773
(?i)アウアウウー\s*Sa[0-9A-Za-z\d]{2}-[0-9A-Za-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
一応、ご指摘通り改良しておきました!
(?i)アウアウウー\s*Sa[0-9A-Za-z\d]{2}-[0-9A-Za-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
一応、ご指摘通り改良しておきました!
776デフォルトの名無しさん
2023/07/07(金) 00:41:55.61ID:adSx9MnJ 反対に(?i)ではSaの他にsAにもマッチしてしまうのでは?
(?-i)アウアウウー Sa..-.... \[106\.
これで誤爆する実例があるなら教えてほしい
(?-i)アウアウウー Sa..-.... \[106\.
これで誤爆する実例があるなら教えてほしい
777デフォルトの名無しさん
2023/07/07(金) 13:06:44.76ID:xew4KSRK 言い方があれだけど、丁寧に書いたかどうかの差なのでどっちでも機能すると思う
778デフォルトの名無しさん
2023/07/07(金) 23:28:01.04ID:chPidFQv 鬼車で(?L)と\g<0>が共存出来ないようだけど
"\g<0>が正規表現全体を取り込むときに(?L)だけを取り込まないようにする"
という修正案で何か問題が起こるか分かる人いません?
例えば (?Lix)abc\g<0> だったら\g<0>の中身が (?ix)abc\g<0> になるようにすれば
共存可能になるんだけど副作用が出るのか分からない
鬼車公式) 全体オプション
github.com/kkos/oniguruma/blob/41a3b802af2155eef6d648aa3608e39605110642/doc/RE.ja#L288
LだけじゃなくCとIも共存不可でした
"\g<0>が正規表現全体を取り込むときに(?L)だけを取り込まないようにする"
という修正案で何か問題が起こるか分かる人いません?
例えば (?Lix)abc\g<0> だったら\g<0>の中身が (?ix)abc\g<0> になるようにすれば
共存可能になるんだけど副作用が出るのか分からない
鬼車公式) 全体オプション
github.com/kkos/oniguruma/blob/41a3b802af2155eef6d648aa3608e39605110642/doc/RE.ja#L288
LだけじゃなくCとIも共存不可でした
779デフォルトの名無しさん
2023/07/09(日) 12:38:44.00ID:dnLGUnq0780デフォルトの名無しさん
2023/07/09(日) 15:02:36.24ID:NT/2XwNR 最長マッチ(?L)を知らなかったんだけど何か思ってたのと全然違った
DFA的な最長だと思ってたのに
DFA的な最長だと思ってたのに
781デフォルトの名無しさん
2023/07/09(日) 17:56:55.84ID:dnLGUnq0 最左じゃなくても良いみたい
UTF-8のとき
abc < abc\Kd
ab < あ
で < て゛
"(?C)a(b|\g<0>)c" がエラーになるのはモヤっとする
"(?C)" が捕獲無効にするから "\g<1>" は使えないし
UTF-8のとき
abc < abc\Kd
ab < あ
で < て゛
"(?C)a(b|\g<0>)c" がエラーになるのはモヤっとする
"(?C)" が捕獲無効にするから "\g<1>" は使えないし
782デフォルトの名無しさん
2023/07/10(月) 13:05:06.30ID:8apozFwM > ab < あ
マルチバイト文字を含む文字列に対して (?L) は使いにくいな
文字単位での長さで比較するようにするのは重くなる上に難易度高そう
マルチバイト文字を含む文字列に対して (?L) は使いにくいな
文字単位での長さで比較するようにするのは重くなる上に難易度高そう
783デフォルトの名無しさん
2023/07/10(月) 20:06:05.30ID:8apozFwM JaneStyleが5ch.netのサポートを終了
この前NG登録出来て喜んでた人かわいそす
この前NG登録出来て喜んでた人かわいそす
784デフォルトの名無しさん
2023/07/11(火) 10:50:26.27ID:6DaZenCz (?L)をマルチ文字対応にするのは無理だけど
>"(?C)a(b|\g<0>)c" がエラーになる
これを使えるように出来る人はいるんじゃないかな
夏休みで暇を持て余している大学生の皆さん、Let's try!
>"(?C)a(b|\g<0>)c" がエラーになる
これを使えるように出来る人はいるんじゃないかな
夏休みで暇を持て余している大学生の皆さん、Let's try!
785デフォルトの名無しさん
2023/07/13(木) 19:11:50.96ID:7AgmN8D3 JAPANを日本、NIPPONをニッポンに、同時に置き換える
JAPAN|NIPPON
↓
日本|ニッポン
JAPAN|NIPPON
↓
日本|ニッポン
786デフォルトの名無しさん
2023/07/13(木) 23:55:44.94ID:OlRmyaph >>785
サクラエディタ+bregonig.dllでは無理っす
サクラエディタ+bregonig.dllでは無理っす
787デフォルトの名無しさん
2023/07/14(金) 00:50:54.69ID:JHf9vJmP788デフォルトの名無しさん
2023/07/14(金) 13:30:40.79ID:lxqistQI わしは鬼車のscan.cをいじって好きに置換出来るようにしたぞ。ファイルからhtmlソースを読み込んで繰り返し検索・置換して結果を別ファイルに出力するようにしとる。便利なのだが使う機会は滅多にない。日常の置換はほぼ秀丸で事足りる。
789デフォルトの名無しさん
2023/07/15(土) 18:19:44.01ID:nnNpViq+ JavaScriptですが「0を含めない正の半角数値のみ」というのは、どう書けばいいのでしょうか?
790デフォルトの名無しさん
2023/07/15(土) 18:22:35.95ID:nnNpViq+ 0を含めないというのは「0より大きい正の半角数値のみ」という意味です
791デフォルトの名無しさん
2023/07/15(土) 18:39:49.26ID:Fs/aULCy 正規表現でやることじゃない
792デフォルトの名無しさん
2023/07/15(土) 18:47:36.28ID:vGns6WZO (?!(?!<[0-9])0(?![0^9]))[0-9]+
00とかあるんだったらダメだけど
00とかあるんだったらダメだけど
793デフォルトの名無しさん
2023/07/15(土) 18:47:49.29ID:hche+KD8794デフォルトの名無しさん
2023/07/15(土) 19:54:00.17ID:nnNpViq+795デフォルトの名無しさん
2023/07/15(土) 20:24:42.65ID:hche+KD8 >>794
「正規表現だけで評価したい理由」になってない
許可したい文字種が「0から9までの数字」ってことで良いのなら、下記で済ませるのが妥当(符号・少数点・セパレータを含んでいたり、16進表記、指数表記、インド数字、などの表現は不許可)
const isValid = Number(inputString) && /^[0-9]+$/.test(inputString);
「正規表現だけで評価したい理由」になってない
許可したい文字種が「0から9までの数字」ってことで良いのなら、下記で済ませるのが妥当(符号・少数点・セパレータを含んでいたり、16進表記、指数表記、インド数字、などの表現は不許可)
const isValid = Number(inputString) && /^[0-9]+$/.test(inputString);
796デフォルトの名無しさん
2023/07/15(土) 21:27:34.96ID:nnNpViq+ すみません
説明の仕方が悪かったです
「正の実数(少数も含む)」でした
0も含ませることにしました
それでこうしました
^(0|[1-9][0-9]*)(|[.][0-9]+)$
説明の仕方が悪かったです
「正の実数(少数も含む)」でした
0も含ませることにしました
それでこうしました
^(0|[1-9][0-9]*)(|[.][0-9]+)$
797デフォルトの名無しさん
2023/07/15(土) 21:44:37.74ID:Ip1+AB5X そして半年後…
「誰だよこんなクソプログラム書いたやつ💢」
「誰だよこんなクソプログラム書いたやつ💢」
798デフォルトの名無しさん
2023/07/15(土) 21:52:20.50ID:G+tF3yG6 滅茶苦茶わかりみ
美しくないプログラムはパッと見てうんざりする
美しくないプログラムはパッと見てうんざりする
799デフォルトの名無しさん
2023/07/17(月) 02:00:45.07ID:MFjOLYv6 改行厨たいさく
[^\n]+([\n\r\s]{2,})[^\n]+([\n\r\s]{2,})[^\n]+([\n\r\s]{2,})[^\n]+
[^\n]+([\n\r\s]{2,})[^\n]+([\n\r\s]{2,})[^\n]+([\n\r\s]{2,})[^\n]+
800デフォルトの名無しさん
2023/07/20(木) 17:25:16.42ID:OqTU1F4P >>785
そういうの出来るといいですけどねえ
そういうの出来るといいですけどねえ
801デフォルトの名無しさん
2023/07/21(金) 15:55:34.48ID:GwV7ay2N802デフォルトの名無しさん
2023/07/23(日) 00:50:40.93ID:hdFkAV/t hage【ZEN123】hoge456789
上記の【】内の全角英数字だけを半角にする
正規表現では無理なパターンの例か
上記の【】内の全角英数字だけを半角にする
正規表現では無理なパターンの例か
803デフォルトの名無しさん
2023/07/23(日) 05:19:55.24ID:BnGP1dsy 正規表現ライブラリを使う側のアプリに変換関数を実装すれば可能になるので
そういう正規表現環境は既に存在してるかも?
今のテキストエディタでもマクロでなら出来るものがありそう
そういう正規表現環境は既に存在してるかも?
今のテキストエディタでもマクロでなら出来るものがありそう
804デフォルトの名無しさん
2023/07/23(日) 09:48:00.20ID:PHWyKwrY 秀丸のようにマクロ使わずに検索→変換できるエディタもあるしね
805デフォルトの名無しさん
2023/07/23(日) 13:07:11.02ID:BnGP1dsy 秀丸と言えば鬼車を秀丸で使えるようにしようとしてる方がいるから
お願いすれば 全角->半角変換 や >>785 の置換に対応してもらえるかも?
本家の最新の鬼車の秀丸エディタからの利用方法
www2.maruo.co.jp/hidesoft/2/x39752_.html
お願いすれば 全角->半角変換 や >>785 の置換に対応してもらえるかも?
本家の最新の鬼車の秀丸エディタからの利用方法
www2.maruo.co.jp/hidesoft/2/x39752_.html
806デフォルトの名無しさん
2023/07/23(日) 15:10:19.87ID:nlZnqujR >>805
それは、一時期そこら中で暴れていた「触れてはいけない人」のヤツだねw
それは、一時期そこら中で暴れていた「触れてはいけない人」のヤツだねw
807デフォルトの名無しさん
2023/07/23(日) 16:14:08.28ID:BnGP1dsy その点は賛否あるだろうけど技術力もモチベも高そうな方だから期待してる
808デフォルトの名無しさん
2023/07/24(月) 12:53:06.11ID:LBGWnldn809デフォルトの名無しさん
2023/07/25(火) 00:28:01.42ID:ijwgoKNu 「正規表現には方言がある」
エディターを乗り換えた時に初めて気付かされたな
エディターを乗り換えた時に初めて気付かされたな
810デフォルトの名無しさん
2023/07/25(火) 01:58:51.32ID:DaPN/KaH \1(sed系)なのか、$1(perl系)なのかは、最初はいつも逆をやってしまう
811デフォルトの名無しさん
2023/07/25(火) 02:10:59.59ID:m8SWwEXi \1ってあちこちにあるものだったのか
EmEditorってエディタがそれでなんだこれって思ってた
EmEditorってエディタがそれでなんだこれって思ってた
812デフォルトの名無しさん
2023/07/25(火) 16:23:19.14ID:hmH9EM9U Onigumoで検索して気持ち悪くなる定期
813デフォルトの名無しさん
2023/07/29(土) 20:32:41.26ID:xNvNUPTs 詳説正規表現の1章だけとりあえず読み終えたけど正規表現の使いどころがわからない
正規表現の便利な使い方教えて!
正規表現の便利な使い方教えて!
814デフォルトの名無しさん
2023/07/29(土) 21:44:23.17ID:slvWQQxm >>813
^(?=.*正規表現)(?=.*教えて)
^(?=.*正規表現)(?=.*教えて)
815デフォルトの名無しさん
2023/07/29(土) 21:46:27.76ID:slvWQQxm816デフォルトの名無しさん
2023/07/29(土) 21:49:39.05ID:slvWQQxm817デフォルトの名無しさん
2023/07/29(土) 21:51:07.45ID:Z2bzRt4C 俺のレス消えちゃうんじゃない?
?=がよくわからないけど後で調べとくよ
?=がよくわからないけど後で調べとくよ
818デフォルトの名無しさん
2023/07/30(日) 10:33:11.68ID:3uyXLeeN テキストエディタで置換を行うときに「正規表現」と「選択範囲」をオン
検索: ^
置換: #
選択範囲の全ての行をコメントアウト出来て便利
--------------------------------------------------------
検索: [ \t]+$
置換: (なし)
行末の余計なスペースを削除出来て便利
検索: ^
置換: #
選択範囲の全ての行をコメントアウト出来て便利
--------------------------------------------------------
検索: [ \t]+$
置換: (なし)
行末の余計なスペースを削除出来て便利
819デフォルトの名無しさん
2023/08/12(土) 18:48:03.89ID:g9Iw6FTW https://hoge.com/p2io0z.png https://fuga.net/f8qpes.png https://moga.com/6nw4yt.png
の用に1行に複数URLがスペース区切りで記載されているものを、それぞれ単独で抜き出したいです。
https?://(?:[!-~]+.)+[!-~]+
だと最長一致になってしまうようで、1行丸ごと対象になってしまます
最短一致出来ればいいと思うのですが、どう正規表現を弄ればいいか教えてください。
の用に1行に複数URLがスペース区切りで記載されているものを、それぞれ単独で抜き出したいです。
https?://(?:[!-~]+.)+[!-~]+
だと最長一致になってしまうようで、1行丸ごと対象になってしまます
最短一致出来ればいいと思うのですが、どう正規表現を弄ればいいか教えてください。
820デフォルトの名無しさん
2023/08/12(土) 18:56:16.40ID:IKZkjZuG http[^\s]+
821デフォルトの名無しさん
2023/08/12(土) 19:02:22.92ID:BmgakVsI >>819
.をエスケープ
.をエスケープ
822デフォルトの名無しさん
2023/08/12(土) 19:14:06.14ID:g9Iw6FTW823デフォルトの名無しさん
2023/08/13(日) 14:38:57.47ID:vv6Q6LsS 突然大きな声で叫ぶな
824デフォルトの名無しさん
2023/08/20(日) 13:26:03.91ID:tG3c9Vi+ perl 正規表現で一発変換できませんか
"aaa \"bbb\" \"ccc\" ddd" # これを以下にしたい
aaa "bbb" "ccc" ddd
"aaa \"bbb\" \"ccc\" ddd" # これを以下にしたい
aaa "bbb" "ccc" ddd
825デフォルトの名無しさん
2023/08/20(日) 13:58:40.55ID:vZ93TkLb 正規表現で
my $s = '"aaa \"bbb\" \"ccc\" ddd"';
$s =~ s/(.*)/eval $s/e;
正規表現を使わずに
my $x = eval '"aaa \"bbb\" \"ccc\" ddd"';
my $s = '"aaa \"bbb\" \"ccc\" ddd"';
$s =~ s/(.*)/eval $s/e;
正規表現を使わずに
my $x = eval '"aaa \"bbb\" \"ccc\" ddd"';
826デフォルトの名無しさん
2023/08/20(日) 14:00:17.67ID:vZ93TkLb >>825
$s =~ s/(.*)/eval $s/e;
↓
$s =~ s/(.*)/eval $1/e;
$s =~ s/(.*)/eval $s/e;
↓
$s =~ s/(.*)/eval $1/e;
8270824
2023/08/20(日) 20:08:57.65ID:tG3c9Vi+ 文字列をevalで再度評価させる
ありがとうございます、勉強になります
ただ文字列にシングルクォートはありません
文字列に2つのパターンがあります
hogehoge "aaa bbb ccc ddd"
hogehoge "aaa \"bbb \"ccc ddd"
s/hogehoge\s+"(.+)".*\n/$1/; # で弾いて
tr/\\//d; # 2回処理しています
ありがとうございます、勉強になります
ただ文字列にシングルクォートはありません
文字列に2つのパターンがあります
hogehoge "aaa bbb ccc ddd"
hogehoge "aaa \"bbb \"ccc ddd"
s/hogehoge\s+"(.+)".*\n/$1/; # で弾いて
tr/\\//d; # 2回処理しています
828デフォルトの名無しさん
2023/08/20(日) 20:26:08.36ID:vZ93TkLb 単純に
s/\\//g
でええんとちゃうん
s/\\//g
でええんとちゃうん
8290824
2023/08/20(日) 20:59:59.16ID:tG3c9Vi+ >>828
2回処理するのでindexで調べてtr使った方が早いでしょ
hogehoge "aaa bbb ccc ddd"
hogehoge "eee \"fff\" \"ggg\" hhh"
目的文字列
aaa bbb ccc ddd
eee "fff" "ggg" hhh
2回処理するのでindexで調べてtr使った方が早いでしょ
hogehoge "aaa bbb ccc ddd"
hogehoge "eee \"fff\" \"ggg\" hhh"
目的文字列
aaa bbb ccc ddd
eee "fff" "ggg" hhh
830デフォルトの名無しさん
2023/08/20(日) 21:32:41.19ID:vZ93TkLb 一発変換したいんじゃないの?
s/hogehoge\s+(.+)/eval $1/e
s/hogehoge\s+(.+)/eval $1/e
8310824
2023/08/20(日) 21:58:11.37ID:tG3c9Vi+832デフォルトの名無しさん
2023/08/21(月) 20:43:15.01ID:Lyi1TDoI eval思い付く人すごい、甲子園優勝
833デフォルトの名無しさん
2023/08/21(月) 23:39:46.20ID:Frb3PbHb >>824
これはUnix名前空間の全引数を" "で括ったものをほどくだけに見えるので、例えばLinux上では
文字列変換ではなく、printfコマンドを通せば一発だが。
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd"
# aaa "bbb" "ccc" ddd
これはUnix名前空間の全引数を" "で括ったものをほどくだけに見えるので、例えばLinux上では
文字列変換ではなく、printfコマンドを通せば一発だが。
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd"
# aaa "bbb" "ccc" ddd
834デフォルトの名無しさん
2023/08/21(月) 23:52:08.69ID:Frb3PbHb 見落としてたので補足しておくと、>>831のコメントの件もUnixの書式に則ったものなら大丈夫。
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd" # ←のようにコメントがあっても、↓になる
# aaa "bbb" "ccc" ddd
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd" # ←のようにコメントがあっても、↓になる
# aaa "bbb" "ccc" ddd
835デフォルトの名無しさん
2023/08/22(火) 01:30:15.60ID:RW2iO7Jr >>perl 正規表現で一発変換できませんか
まあ参考にはなるけど質問の条件無視してドヤ顔で語られてもねえ‥
まあ参考にはなるけど質問の条件無視してドヤ顔で語られてもねえ‥
836デフォルトの名無しさん
2023/08/22(火) 02:16:49.08ID:NJ9SPgik837デフォルトの名無しさん
2023/08/22(火) 12:38:02.82ID:NJ9SPgik >>831
(perlの)コメントがあっても動作するよ
(perlの)コメントがあっても動作するよ
839デフォルトの名無しさん
2023/09/02(土) 20:40:48.54ID:PozNjemk ●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
IPアドレス部分だけ抽出したいです
各セグメントが1-255の範囲内かどうかのチェックは無くてもOKです
※対象データの内xは文字としてのアルファベットのxです
\r\nは改行コードです
よろしくお願いします
●対象データ
x\r\n192.168.10.1\r\n0\r\n\r\n
●希望する結果
192.168.10.1
Lua
●検索か置換か?
検索
●説明
IPアドレス部分だけ抽出したいです
各セグメントが1-255の範囲内かどうかのチェックは無くてもOKです
※対象データの内xは文字としてのアルファベットのxです
\r\nは改行コードです
よろしくお願いします
●対象データ
x\r\n192.168.10.1\r\n0\r\n\r\n
●希望する結果
192.168.10.1
840デフォルトの名無しさん
2023/09/02(土) 22:43:12.64ID:JbZUXP6Y (%d+%.%d+%.%d+%.%d+)
841839
2023/09/03(日) 01:48:07.24ID:BSGxD5eG ありがとうございました
842デフォルトの名無しさん
2023/09/03(日) 01:50:43.78ID:BSGxD5eG ●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
コロンとスペースの右側の数字だけ抽出したいです
よろしくお願いします
●対象データ
abe-gkm: 12
●希望する結果
12
Lua
●検索か置換か?
検索
●説明
コロンとスペースの右側の数字だけ抽出したいです
よろしくお願いします
●対象データ
abe-gkm: 12
●希望する結果
12
843デフォルトの名無しさん
2023/09/03(日) 06:04:52.16ID:ldBVlws1 自分で覚える気は一切ないんですね
844デフォルトの名無しさん
2023/09/03(日) 14:44:19.10ID:QHfhMJE9 LUA5.1リファレンスマニュアル 文字列操作
http://milkpot.sakura.ne.jp/lua/lua51_manual_ja.html#5.4
http://milkpot.sakura.ne.jp/lua/lua51_manual_ja.html#5.4
845デフォルトの名無しさん
2023/09/03(日) 17:01:33.87ID:7kfz6vsc 訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 12
●希望する結果
12
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 12
●希望する結果
12
846デフォルトの名無しさん
2023/09/03(日) 17:20:26.33ID:ruPOb/mk 訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: ::12
●希望する結果
12
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: ::12
●希望する結果
12
848デフォルトの名無しさん
2023/09/03(日) 17:42:25.87ID:ruPOb/mk 訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 121212
●希望する結果
12
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 121212
●希望する結果
12
849デフォルトの名無しさん
2023/09/04(月) 00:12:22.18ID:SsZQexqW850デフォルトの名無しさん
2023/09/04(月) 13:01:20.01ID:c5K3sEzk Excelの文字を取り出すLEFT関数、RIGHT関数、MID関数
正規表現でも相当がんばれば再現できなくはないけれど、努力に見合った意味が見つからない
正規表現でも相当がんばれば再現できなくはないけれど、努力に見合った意味が見つからない
851デフォルトの名無しさん
2023/09/04(月) 13:08:00.64ID:nyO3ndTW >[^: ]*$
こういうの後ろから見るよう最適化されるのかな
こういうの後ろから見るよう最適化されるのかな
852デフォルトの名無しさん
2023/09/04(月) 15:41:22.66ID:zA8RUwS0 ややこしい検索は正規表現だけよりも
awkなどで簡単な正規表現とif文や関数を組み合わせる方が早い
awkなどで簡単な正規表現とif文や関数を組み合わせる方が早い
853デフォルトの名無しさん
2023/09/04(月) 18:55:45.65ID:BoKCZaYW 今回のはややこしくはない
むしろ簡単
むしろ簡単
854デフォルトの名無しさん
2023/09/04(月) 19:08:28.07ID:8gjbapjk >>849
アホらしすぎて・・・
アホらしすぎて・・・
855デフォルトの名無しさん
2023/09/04(月) 20:45:35.27ID:DgpCgO2R856デフォルトの名無しさん
2023/09/04(月) 20:55:42.10ID:Tkae+foX857デフォルトの名無しさん
2023/09/04(月) 20:58:59.14ID:DgpCgO2R858デフォルトの名無しさん
2023/09/04(月) 21:05:24.79ID:NKgrLrxG 訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 33
●希望する結果
12
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 33
●希望する結果
12
860デフォルトの名無しさん
2023/09/04(月) 21:16:52.45ID:NTqFdCv7 自演荒らしが捗るなw
861デフォルトの名無しさん
2023/09/04(月) 22:23:04.68ID:0+pR+e5l862デフォルトの名無しさん
2023/09/06(水) 02:59:30.44ID:lSkku4oe インフラ屋は性格良い
プログラマは性格悪い
プログラマは性格悪い
863デフォルトの名無しさん
2023/09/06(水) 07:21:34.46ID:yobQfJn+ 俺はインフラ屋
性格良いよ
性格良いよ
864デフォルトの名無しさん
2023/09/06(水) 09:14:00.91ID:UTcPybKQ プログラマは正確悪いというより
無駄な事をしたくないだけっていう人が多い
無駄な事をしたくないだけっていう人が多い
865デフォルトの名無しさん
2023/09/06(水) 09:18:47.39ID:BQBp+rCO 無駄な事をしたくないと思いつつ性格が悪いから文句だけは言う人が多い
866デフォルトの名無しさん
2023/09/06(水) 09:44:01.14ID:HD7oM5sP 態度と性格を区別できない人々
867デフォルトの名無しさん
2023/09/06(水) 09:45:30.51ID:Ygn1Ao5e >>866
能書きだけはいっちょまえ
能書きだけはいっちょまえ
868デフォルトの名無しさん
2023/09/06(水) 09:57:30.15ID:tVigPql1 それがプログラマの性分
869デフォルトの名無しさん
2023/09/08(金) 08:44:01.58ID:07e9DMWQ ぼくはインフラ屋だけど性格悪い(´・ω・`)すまんね
870デフォルトの名無しさん
2023/09/11(月) 00:45:50.96ID:cvO0nzmM ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
検索
●説明
REM半角スペースを検索してREM部分のみに一致させたい
●対象データ
REM TEST
●希望する結果
REM
サクラエディタ
●検索か置換か?
検索
●説明
REM半角スペースを検索してREM部分のみに一致させたい
●対象データ
REM TEST
●希望する結果
REM
871870
2023/09/11(月) 00:53:10.22ID:cvO0nzmM /REM(?= )/kで出来ました
872デフォルトの名無しさん
2023/09/13(水) 16:39:29.09ID:qhl2oEPa ●Regular Expressionの使用環境
javascript
●検索か置換か?
検索
●説明
( ) 括弧の中の文字列の特定の文字の時だけ一致させたいです
例でいえば括弧の中が「横浜」の時だけヒットさせたいです
●対象データ
東京都(ただし新宿区は除く)に住みたいけれど、神奈川県(だけど横浜は家賃が)でもいい
●希望する結果
だけど横浜は家賃が
javascript
●検索か置換か?
検索
●説明
( ) 括弧の中の文字列の特定の文字の時だけ一致させたいです
例でいえば括弧の中が「横浜」の時だけヒットさせたいです
●対象データ
東京都(ただし新宿区は除く)に住みたいけれど、神奈川県(だけど横浜は家賃が)でもいい
●希望する結果
だけど横浜は家賃が
873デフォルトの名無しさん
2023/09/13(水) 16:41:17.76ID:qhl2oEPa ごめんなさい872の追記です
括弧は半角全角どちらでも対応できるようにしていただけると助かります
括弧は半角全角どちらでも対応できるようにしていただけると助かります
874デフォルトの名無しさん
2023/09/13(水) 18:37:54.95ID:3qYEVVGq >>872
[((]\K[^))]*横浜[^))]*+(?=[))])
[((]\K[^))]*横浜[^))]*+(?=[))])
875デフォルトの名無しさん
2023/09/13(水) 20:55:54.73ID:T8/GYmvT 対象データがそれだけきれいに整っているならこれでいいんじゃないかな
[^()()]*横浜[^()()]*(?=[))])
[^()()]*横浜[^()()]*(?=[))])
876デフォルトの名無しさん
2023/09/13(水) 21:32:58.14ID:qhl2oEPa >>874-875
ありがとうございます。875さんの方でプログラムがパーフェクトに動くものが叶いました。
ありがとうございます。875さんの方でプログラムがパーフェクトに動くものが叶いました。
877デフォルトの名無しさん
2023/09/14(木) 00:22:01.99ID:L47o5ku7 鬼車は結局Unicode15対応版がリリースされなかったな
878デフォルトの名無しさん
2023/09/16(土) 22:56:08.84ID:dIGSEJlt 同じワードの繰り返し(回数指定)を除外する正規表現を教えてください
879デフォルトの名無しさん
2023/09/17(日) 07:04:17.16ID:jNYPDoV+ 除外??
880デフォルトの名無しさん
2023/09/17(日) 10:23:51.82ID:ht+84nM7 こういうこと?
abcxyzacz → bxy
abcxyzacz → bxy
881デフォルトの名無しさん
2023/09/17(日) 14:29:52.53ID:yn1jo0MJ "にゃんたま"が3回以上登場する文字列から全ての"にゃんたま"を取り除く
\A(?=(?:(?:(?!にゃんたま)[\s\S])*にゃんたま){3})((?:(?!にゃんたま)[\s\S])*)にゃんたま|\G((?:(?!にゃんたま)[\s\S])*)にゃんたま
\A(?=(?:(?:(?!にゃんたま)[\s\S])*にゃんたま){3})((?:(?!にゃんたま)[\s\S])*)にゃんたま|\G((?:(?!にゃんたま)[\s\S])*)にゃんたま
882デフォルトの名無しさん
2023/09/17(日) 14:33:30.19ID:yn1jo0MJ 置換後の文字列: $1$2
883デフォルトの名無しさん
2023/09/17(日) 15:23:07.94ID:yn1jo0MJ スマン、\Gの前に(?!\A)を置いてくれ
884デフォルトの名無しさん
2023/09/17(日) 16:53:03.56ID:oNTID2ix 3回連続して出現する単語を削除
//javascript
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎';
console.log(s.replace(/(?:(.+)\1{2})/g, ''));
#python
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎'
print(re.sub(r'(?:(.+)\1{2})', '', s))
//javascript
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎';
console.log(s.replace(/(?:(.+)\1{2})/g, ''));
#python
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎'
print(re.sub(r'(?:(.+)\1{2})', '', s))
885デフォルトの名無しさん
2023/09/17(日) 17:05:16.38ID:Fm9hMrUa \nを30回以上は非表示するにはどうしたらいいですか
886デフォルトの名無しさん
2023/09/17(日) 17:18:53.47ID:jNYPDoV+ 非表示??
887デフォルトの名無しさん
2023/09/17(日) 17:41:10.52ID:PjfamyxI \nがn回以上除外で
888デフォルトの名無しさん
2023/09/17(日) 22:51:45.08ID:jyrM2LRG ●Regular Expressionの使用環境
Perl
●検索か置換か?
検索
●説明
後ろから2つ目の/以降を取得したい
●対象データ
/a/bb/ccc/dddd/eeeee/cgi/sample.cgi
●希望する結果
/cgi/sample.cgi
お願いします
Perl
●検索か置換か?
検索
●説明
後ろから2つ目の/以降を取得したい
●対象データ
/a/bb/ccc/dddd/eeeee/cgi/sample.cgi
●希望する結果
/cgi/sample.cgi
お願いします
889デフォルトの名無しさん
2023/09/18(月) 01:07:38.93ID:e1xt8o+y .*\K/.*/.*
890デフォルトの名無しさん
2023/09/23(土) 15:35:56.62ID:UU1JiicL 何回連続とか何番目とかってのは正規表現じゃなくて言語でなんとかした方がいいのでは
可読性的な観点からでも
可読性的な観点からでも
891デフォルトの名無しさん
2023/09/25(月) 14:32:09.00ID:w/fMdm7Q 正規表現じゃなく言語表現をなんとかした方がいい
892デフォルトの名無しさん
2023/09/25(月) 15:45:13.07ID:b6Bm13IE 正規表現じゃなく性器表現とした方がいい
893デフォルトの名無しさん
2023/09/25(月) 15:46:57.59ID:b6Bm13IE 正規表現じゃなく性器表現とかなんとかにした方がいい
894デフォルトの名無しさん
2023/09/26(火) 17:43:27.65ID:WhLFttTP 添削って受け付けてたっけ?
自分が求める結果は得られてるけど、それでいいのかどうか
自分が求める結果は得られてるけど、それでいいのかどうか
895デフォルトの名無しさん
2023/10/03(火) 15:05:59.66ID:pjWozC8L >>894
You ここで見せちゃいなよ、meが見てあげるよ
You ここで見せちゃいなよ、meが見てあげるよ
896デフォルトの名無しさん
2023/10/15(日) 05:59:22.52ID:qeiyy+lM oniguruma Release 6.9.9
Update Unicode version 15.1.0
NEW API: ONIG_OPTION_MATCH_WHOLE_STRING
Fixed: (?I) option was not enabled for character classes (Issue #264).
Changed specification to check for incorrect POSIX bracket (Issue #253).
Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268)
Fixed: ONIG_OPTION_FIND_LONGEST behavior
> ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求
マッチした開始の位置はstartでなくても良いらしい
oniguruma/test/test_options.c
x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a", "aaaa", 3, 4); // OK (4文字目のaにマッチ)
> [[:punct:]]
Changed the definition of [:punct:] in Unicode encodings from \p{P} to \p{PosixPunct} = \p{P} + \p{S}.
(PosixPunct is a new addition.)
Update Unicode version 15.1.0
NEW API: ONIG_OPTION_MATCH_WHOLE_STRING
Fixed: (?I) option was not enabled for character classes (Issue #264).
Changed specification to check for incorrect POSIX bracket (Issue #253).
Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268)
Fixed: ONIG_OPTION_FIND_LONGEST behavior
> ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求
マッチした開始の位置はstartでなくても良いらしい
oniguruma/test/test_options.c
x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a", "aaaa", 3, 4); // OK (4文字目のaにマッチ)
> [[:punct:]]
Changed the definition of [:punct:] in Unicode encodings from \p{P} to \p{PosixPunct} = \p{P} + \p{S}.
(PosixPunct is a new addition.)
897デフォルトの名無しさん
2023/10/15(日) 06:13:36.53ID:qeiyy+lM > Fixed: ONIG_OPTION_FIND_LONGEST behavior
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "ab", 0, 2); // OK ( "ab" にマッチ)
最左最長一致からガチ最長一致になってる
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "ab", 0, 2); // OK ( "ab" にマッチ)
最左最長一致からガチ最長一致になってる
898デフォルトの名無しさん
2023/10/15(日) 06:27:13.95ID:qeiyy+lM 間違えた、こっちだった
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "abc", 0, 3); // OK ( "abc" にマッチ)
// マルチバイト文字には非対応のまま
x2(ONIG_OPTION_FIND_LONGEST, "ab|あ", "abあ", 2, 5); // OK ( "あ" にマッチ)
UTF-32 にエンコードしてから使えばいいのかしら
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "abc", 0, 3); // OK ( "abc" にマッチ)
// マルチバイト文字には非対応のまま
x2(ONIG_OPTION_FIND_LONGEST, "ab|あ", "abあ", 2, 5); // OK ( "あ" にマッチ)
UTF-32 にエンコードしてから使えばいいのかしら
899デフォルトの名無しさん
2023/10/20(金) 08:36:56.63ID:S3IcPVBq900デフォルトの名無しさん
2023/10/20(金) 16:11:58.36ID:8kCGh912 >>899
ZIP edition が無い…
ZIP edition が無い…
901デフォルトの名無しさん
2023/10/21(土) 14:33:23.21ID:43n7K7Fq tar.gzで我慢しなさい
902デフォルトの名無しさん
2023/10/29(日) 10:19:38.81ID:zDgIETfO アルファベットのみにマッチする文字クラスを[a-Z]と書けない
ASCIIコード表を決めた人達は今頃失敗したと思ってるんだろうか
ASCIIコード表を決めた人達は今頃失敗したと思ってるんだろうか
903デフォルトの名無しさん
2023/10/29(日) 12:34:50.74ID:vOjtdftv 初心者向けクイズ
Q: /w にマッチするアルファベット以外の文字がひとつあります。その文字とは、一体何でしょうか?
Q: /w にマッチするアルファベット以外の文字がひとつあります。その文字とは、一体何でしょうか?
904デフォルトの名無しさん
2023/10/29(日) 12:42:28.97ID:BaFdPLsN アンダースコート
905デフォルトの名無しさん
2023/10/29(日) 12:45:28.88ID:zDgIETfO アンダースロー
906デフォルトの名無しさん
2023/10/29(日) 13:20:31.22ID:y5KdwCim アンダーニンジャ
907デフォルトの名無しさん
2023/10/29(日) 15:41:31.84ID:zDgIETfO ニンジャリバンバン
908デフォルトの名無しさん
2023/10/29(日) 19:20:26.89ID:dO2GnsiA 正解はスラッシュでした
909デフォルトの名無しさん
2023/10/29(日) 19:49:37.09ID:zDgIETfO (/w\)
910デフォルトの名無しさん
2023/10/30(月) 20:06:53.46ID:wzEyUd/K ASCIIコード表について調べてみたら特定の1ビットを0にするか1にするかで
大文字小文字が変換出来るようにするための順番らしい
並びの便利さより処理効率が優先されてた、先人の知恵に敬礼
大文字小文字が変換出来るようにするための順番らしい
並びの便利さより処理効率が優先されてた、先人の知恵に敬礼
911デフォルトの名無しさん
2023/10/30(月) 20:59:27.53ID:dhg2pdyL どうせ範囲チェックはしないといけないんだから
それだったら引き算や足し算で大文字小文字変換できちゃう
まあ昔はbit演算より算術演算にステップ数が掛かってたからその当時は良かったんだろうけど
それだったら引き算や足し算で大文字小文字変換できちゃう
まあ昔はbit演算より算術演算にステップ数が掛かってたからその当時は良かったんだろうけど
912デフォルトの名無しさん
2023/10/31(火) 18:36:44.19ID:X00tNW2d 今時のマシンのことしか考えなくていいなら足し引きで良さそうだけど
遅いマシンのことまで考えるならビット演算一択になるんだろうな
アルファベットが32文字だったら隙間出来なかったのに
SHIFT_JISのダメ文字問題も最初からEUC-JPにしとけば苦労しなかったのにな
遅いマシンのことまで考えるならビット演算一択になるんだろうな
アルファベットが32文字だったら隙間出来なかったのに
SHIFT_JISのダメ文字問題も最初からEUC-JPにしとけば苦労しなかったのにな
913デフォルトの名無しさん
2023/10/31(火) 21:57:53.63ID:27STA2Pg 正規表現は改行の扱いが難しいなあ
やらかすときはたいてい改行の処理でミスる
やらかすときはたいてい改行の処理でミスる
914デフォルトの名無しさん
2023/11/01(水) 09:19:33.19ID:DBguvWIQ . が改行にマッチしないのを失念してってのは何度もやってる
915デフォルトの名無しさん
2023/11/01(水) 11:38:27.61ID:ikHnu6pN ●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
キク
キラク
ムラタヤ
●マッチさせない文字列
キム
キムラ
タクヤ
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
キク
キラク
ムラタヤ
●マッチさせない文字列
キム
キムラ
タクヤ
916デフォルトの名無しさん
2023/11/01(水) 11:38:37.53ID:ikHnu6pN ●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
キク
キラク
ムラタヤ
●マッチさせない文字列
キム
キムラ
タクヤ
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
キク
キラク
ムラタヤ
●マッチさせない文字列
キム
キムラ
タクヤ
917デフォルトの名無しさん
2023/11/01(水) 12:08:10.81ID:oh2mJ3WA ^(?:キ?ム?ラ?)(?<=\S)(?=\S)(?:タ?ク?ヤ?)$
918デフォルトの名無しさん
2023/11/01(水) 14:40:34.08ID:DBguvWIQ 同じ人かは分からないけど超優秀な回答者がここ1,2年前から来てくれてる
多くの閲覧者にとっても勉強になるからありたがいことです
多くの閲覧者にとっても勉強になるからありたがいことです
919デフォルトの名無しさん
2023/11/01(水) 16:00:59.53ID:G1jsC9Xy じつはその人AIだよ
920デフォルトの名無しさん
2023/11/01(水) 17:01:21.99ID:ikHnu6pN >>917
ありがとうございます動きました
3語以上の場合はこれでできてますか?
^(?:キ?ム?)(?<=\S)(?=\S{2})((?:ラ?タ?)(?<=\S{2})(?=\S)(?:ク?ヤ?))$
ありがとうございます動きました
3語以上の場合はこれでできてますか?
^(?:キ?ム?)(?<=\S)(?=\S{2})((?:ラ?タ?)(?<=\S{2})(?=\S)(?:ク?ヤ?))$
921デフォルトの名無しさん
2023/11/01(水) 17:03:51.95ID:DBguvWIQ AIと言われても違和感が無いから困る、人間だったほうがいい
サクラエディタを少し触ってみたが
\r を \c-
\n を \c*
に書き換えてもマッチした
このことは恐らくbregoing.dllの作者氏でも知らないのでは
サクラエディタを少し触ってみたが
\r を \c-
\n を \c*
に書き換えてもマッチした
このことは恐らくbregoing.dllの作者氏でも知らないのでは
922デフォルトの名無しさん
2023/11/01(水) 18:26:59.70ID:upaRAmPk923デフォルトの名無しさん
2023/11/01(水) 21:03:12.97ID:bvA/YDb8 最後で語数チェックすれば?
(?<=\S{3})$
(?<=\S{3})$
924デフォルトの名無しさん
2023/11/01(水) 22:35:57.76ID:8ROMQdip ^(キ?ム?ラ?)(タ?ク?ヤ?)$(?!\1|\2)
^(キ?ム?)(ラ?タ?)(ク?ヤ?)$(?!\1)(?!\2)(?!\3)
^(キ?ム?)(?!.*+$\k<-1>)(ラ?タ?)(?!.*+$\k<-1>)(ク?ヤ?)(?!.*+$\k<-1>)$
^(?=(.++))(?:キ?ム?)(?!\k<-1>)(?=(.++))(?:ラ?タ?)(?!\k<-1>)(?=(.++))(?:ク?ヤ?)(?!\k<-1>)$
^(キ?ム?)(ラ?タ?)(ク?ヤ?)$(?!\1)(?!\2)(?!\3)
^(キ?ム?)(?!.*+$\k<-1>)(ラ?タ?)(?!.*+$\k<-1>)(ク?ヤ?)(?!.*+$\k<-1>)$
^(?=(.++))(?:キ?ム?)(?!\k<-1>)(?=(.++))(?:ラ?タ?)(?!\k<-1>)(?=(.++))(?:ク?ヤ?)(?!\k<-1>)$
925デフォルトの名無しさん
2023/11/02(木) 08:03:41.39ID:ztJD977Y 文字数も単語数も拡張性もばっちりです
ご指導ありがとうございました
ご指導ありがとうございました
926デフォルトの名無しさん
2023/11/02(木) 09:18:56.98ID:/CeYlFrx > $(?!\1|\2)
これもすごい、こんなの思い付かない
私なら(?(1))を使おうとしてグチャる
こういうのを作れる人になりたかった、羨ましい限りだ
これもすごい、こんなの思い付かない
私なら(?(1))を使おうとしてグチャる
こういうのを作れる人になりたかった、羨ましい限りだ
927デフォルトの名無しさん
2023/11/02(木) 09:22:55.91ID:kxWwWLf8 >>910
アルファベットが32文字だったら誰も困らなかったはず
アルファベットが32文字だったら誰も困らなかったはず
928デフォルトの名無しさん
2023/11/02(木) 11:56:22.72ID:YMFW9tw8 各文字列から最低2文字以上含まれてる略称にだけマッチすることもできる?
929デフォルトの名無しさん
2023/11/02(木) 13:01:27.99ID:eLjTHeK1 ^(?=.(.++))(?:キ?ム?ラ?)(?!.?\k<-1>)(?=.(.++))(?:タ?ク?ヤ?)(?!.?\k<-1>)$
^(?=.{1}(.++))(?:キ?ム?ラ?)(?!.{0,1}\k<-1>)(?=.{1}(.++))(?:タ?ク?ヤ?)(?!.{0,1}\k<-1>)$
^(?=.{1}(.++))(?:キ?ム?ラ?)(?!.{0,1}\k<-1>)(?=.{1}(.++))(?:タ?ク?ヤ?)(?!.{0,1}\k<-1>)$
930デフォルトの名無しさん
2023/11/02(木) 19:36:53.03ID:/CeYlFrx ラノベ 「1日でキムタクの一般項が出来てるからパソコンそっと閉じて見なかったことにする」
931デフォルトの名無しさん
2023/11/03(金) 08:34:37.96ID:cY7DSC5H ^[キムラ]{1,2}[タクヤ]{1,2}$
932デフォルトの名無しさん
2023/11/03(金) 09:08:43.70ID:PqFUo1lf それはラキクタにマッチするからボツ(==.)
933デフォルトの名無しさん
2023/11/03(金) 10:43:13.94ID:cY7DSC5H ラキクタにマッチしたらダメって条件にはないんだけど‥
934デフォルトの名無しさん
2023/11/03(金) 11:44:22.65ID:PqFUo1lf 確かに言葉ではそんな条件は書いてないね、曖昧3cm
935デフォルトの名無しさん
2023/11/03(金) 11:50:18.95ID:zxzLPr4V ^?キ?ム?ラ?タ?クヤ?$が略称条件な流れ?
936デフォルトの名無しさん
2023/11/03(金) 12:14:21.11ID:sAJhyk0D ^(?=A)(?=B).*$
937デフォルトの名無しさん
2023/11/03(金) 12:18:03.55ID:PqFUo1lf >>916を読めば文字順通りと受け取るのが妥当だね
ちなみにもしこのコマンドがあったら簡単に書けた
https://www.proxomitron.info/45/help/Matching-Commands.html#TST
^(キ?ム?ラ?)$TST(\1=..+)(タ?ク?ヤ?)$TST(\2=..+)$
perlなら(??{code})でこのコマンドと同じことが出来るけどサクラエディタのdllでは無理
dllに$SETと$TSTが実装されたら正規表現の幅がめっちゃ広がるけど無理そう
// \1 に日本語表記での色が代入される
blue$SET(1=青)|yellow$SET(1=黄)|red$SET(1=赤)
ちなみにもしこのコマンドがあったら簡単に書けた
https://www.proxomitron.info/45/help/Matching-Commands.html#TST
^(キ?ム?ラ?)$TST(\1=..+)(タ?ク?ヤ?)$TST(\2=..+)$
perlなら(??{code})でこのコマンドと同じことが出来るけどサクラエディタのdllでは無理
dllに$SETと$TSTが実装されたら正規表現の幅がめっちゃ広がるけど無理そう
// \1 に日本語表記での色が代入される
blue$SET(1=青)|yellow$SET(1=黄)|red$SET(1=赤)
938デフォルトの名無しさん
2023/11/03(金) 13:00:30.59ID:RnAsJxc7 >>924
^(?=(キ?ム?ラ?)(タ?ク?ヤ?)$)[キムラ]{1,}[タクヤ]{1,}$
(?=(キ?ム?ラ?)(タ?ク?ヤ?)(.*+))[キムラ]{1,}[タクヤ]{1,}(?=\3)
キキムタククク
^(?=(キ?ム?ラ?)(タ?ク?ヤ?)$)[キムラ]{1,}[タクヤ]{1,}$
(?=(キ?ム?ラ?)(タ?ク?ヤ?)(.*+))[キムラ]{1,}[タクヤ]{1,}(?=\3)
キキムタククク
939デフォルトの名無しさん
2023/11/03(金) 18:04:12.94ID:328LomOy キムラタクヤ人気で🌿
940デフォルトの名無しさん
2023/11/03(金) 19:14:55.49ID:3J2AA+3k >>937
他人には厳しい条件はたすくせに外部コマンドやperl使うのはokなのかw
他人には厳しい条件はたすくせに外部コマンドやperl使うのはokなのかw
941デフォルトの名無しさん
2023/11/03(金) 20:09:52.31ID:PqFUo1lf 知ってる外部コマンドは使っていいに決まってる
頭の中では質問見た瞬間に出来てたよ
頭の中では質問見た瞬間に出来てたよ
942デフォルトの名無しさん
2023/11/03(金) 20:13:40.11ID:/gQFYHMn 「課す」を「はたす」って読んでるってマ?🤣
943デフォルトの名無しさん
2023/11/03(金) 21:12:42.60ID:PqFUo1lf この外部コマンドを考えた方は2004年に亡くなっている
https://en.wikipedia.org/wiki/Scott_R._Lemmon
20年前にこのコマンドを実装済みだったのはやばいな
perlの正規表現ですらそんなに機能が無かった時代だ
https://en.wikipedia.org/wiki/Scott_R._Lemmon
20年前にこのコマンドを実装済みだったのはやばいな
perlの正規表現ですらそんなに機能が無かった時代だ
944デフォルトの名無しさん
2023/11/03(金) 21:17:14.08ID:N1OKG/2k 最初から略称と言ってるのに文字順不問だと思うほうがどうかしてる
945デフォルトの名無しさん
2023/11/04(土) 08:36:40.13ID:w1sIftMp (正直|ぶっちゃけぇ?)高度すぎて理解が追いつかない
946デフォルトの名無しさん
2023/11/04(土) 11:16:01.85ID:PZuBSK2Q カラクリを簡単に説明しよう
1、 (?:キ?ム?ラ?) で文字順を固定
2、 その他の部分でカッコ内でマッチする文字数の制限をかけている
例、 (?:キ?ム?ラ?) が0文字にマッチしたとしよう
\1が捕獲した中身は0文字になる
(?!\1) の\1の中身が0文字だったら (?!\1) は (?!) と同じ動作になる
(?!) は常にマッチを失敗させるから\1が0文字ならマッチ出来ない
結果的にこれが文字数制限になっている
ちなみに正規表現にカウント機能があればもっと簡単に書けていた
(
(?:キ$COUNT(x))?
(?:ム$COUNT(x))?
(?:ラ$COUNT(x))?
)
$COUNT(0<x)
perlは(?{code})でカウント可能、鬼車もカウント機能を実装済
1、 (?:キ?ム?ラ?) で文字順を固定
2、 その他の部分でカッコ内でマッチする文字数の制限をかけている
例、 (?:キ?ム?ラ?) が0文字にマッチしたとしよう
\1が捕獲した中身は0文字になる
(?!\1) の\1の中身が0文字だったら (?!\1) は (?!) と同じ動作になる
(?!) は常にマッチを失敗させるから\1が0文字ならマッチ出来ない
結果的にこれが文字数制限になっている
ちなみに正規表現にカウント機能があればもっと簡単に書けていた
(
(?:キ$COUNT(x))?
(?:ム$COUNT(x))?
(?:ラ$COUNT(x))?
)
$COUNT(0<x)
perlは(?{code})でカウント可能、鬼車もカウント機能を実装済
947デフォルトの名無しさん
2023/11/04(土) 14:47:51.87ID:Xn6+uSVd perlジジイこのスレでも自演してんのかw
948デフォルトの名無しさん
2023/11/04(土) 17:37:08.01ID:PZuBSK2Q COBOLジジイからperlジジイにランクアップ
949デフォルトの名無しさん
2023/11/05(日) 13:03:00.89ID:q8heJbgz サクラエディタ
// 1
\1(a)
// 2
\k<name>(?<name>a)
2は1を名前付き括弧にしただけ
1は実行してもマッチに失敗するだけだが2はエラー
これはどちらもエラーになるほうが良い
// 1
\1(a)
// 2
\k<name>(?<name>a)
2は1を名前付き括弧にしただけ
1は実行してもマッチに失敗するだけだが2はエラー
これはどちらもエラーになるほうが良い
950デフォルトの名無しさん
2023/11/05(日) 13:07:33.08ID:q8heJbgz ん?本当にそうか?分からん
951デフォルトの名無しさん
2023/11/05(日) 15:52:16.56ID:q8heJbgz 2がエラーになるのは誤りだ、異論ある?
いつもの超優秀な人(AI?)の意見を聞かせて欲しい
いつもの超優秀な人(AI?)の意見を聞かせて欲しい
952デフォルトの名無しさん
2023/11/06(月) 06:59:13.82ID:j6L5l5bH 異論はないってことで良いかな、おそらく既知の問題(仕様)だと思われる
この問題に長年気付かないとは考えられないから
本来動くべきサンプルを貼って>>949の件は終了とする
x2("(?:\\k<n>b|(?<n>a))+", "aab", 0, 3); // ERROR: undefined name <n> reference
x2("(?:(?<n>a)|\\k<n>b)+", "aab", 0, 2); // OK
x2("(?:\\1b|(a))+", "aab", 0, 3); // OK
x2("(?:(a)|\\1b)+", "aab", 0, 2); // OK
この問題に長年気付かないとは考えられないから
本来動くべきサンプルを貼って>>949の件は終了とする
x2("(?:\\k<n>b|(?<n>a))+", "aab", 0, 3); // ERROR: undefined name <n> reference
x2("(?:(?<n>a)|\\k<n>b)+", "aab", 0, 2); // OK
x2("(?:\\1b|(a))+", "aab", 0, 3); // OK
x2("(?:(a)|\\1b)+", "aab", 0, 2); // OK
953デフォルトの名無しさん
2023/11/06(月) 19:00:47.89ID:j6L5l5bH 回避策
x2("(?<n>a){0}(?:\\k<n>b|\\g<n>)+", "aab", 0, 3); // OK
x2("(?<n>a){0}(?:\\k<n>b|\\g<n>)+", "aab", 0, 3); // OK
954デフォルトの名無しさん
2023/11/15(水) 17:50:43.57ID:Karf8A+O 文字列の頭に部分一致するパターンなんですが・・・
「abcdefg」にマッチするパターンですが、
/^a(?:b(?:c(?:d(?:e(?:f(?:g)?)?)?)?)?)?/
と書くしかないですか?
文字列が長大な場合、ちょっと無理なんですが・・・
(文字はアルファベットとは限らず)
WindowsのJScriptですが。
「abcdefg」にマッチするパターンですが、
/^a(?:b(?:c(?:d(?:e(?:f(?:g)?)?)?)?)?)?/
と書くしかないですか?
文字列が長大な場合、ちょっと無理なんですが・・・
(文字はアルファベットとは限らず)
WindowsのJScriptですが。
955デフォルトの名無しさん
2023/11/15(水) 18:12:27.94ID:ctqB5947 /^abcdefg/
956デフォルトの名無しさん
2023/11/15(水) 18:41:54.66ID:/mJ+eeiZ 無いんじゃないか?
^(?:abcdefg|abcdef|abcde|abcde|abcd|abc|ab|a)
とどっちがマシかな
^(?:abcdefg|abcdef|abcde|abcde|abcd|abc|ab|a)
とどっちがマシかな
957デフォルトの名無しさん
2023/11/16(木) 14:47:23.08ID:7i/8qZTv /^m/ にマッチして map だけマッチして欲しくない
/^m[^a][^p]/ これだと man にマッチしてくれない
どう書けばいいですか
/^m[^a][^p]/ これだと man にマッチしてくれない
どう書けばいいですか
958デフォルトの名無しさん
2023/11/16(木) 14:53:22.83ID:4tHpE5Jq >>957
否定先読みが使えるなら^m(?!ap)かな?
否定先読みが使えるなら^m(?!ap)かな?
959デフォルトの名無しさん
2023/11/16(木) 15:59:06.48ID:7i/8qZTv ありがとう
960デフォルトの名無しさん
2023/11/17(金) 04:25:56.84ID:gwXFy+9L 特定の文字列を検出したい場合、\Q~\Eの~に、その特定の文字列を入れておけば、どんな文字が来ても大丈夫でしょうか?
961デフォルトの名無しさん
2023/11/17(金) 06:13:31.18ID:28WV0iMa \Eが来ると困る
962デフォルトの名無しさん
2023/11/28(火) 12:33:08.74ID:vIU65Zk5 正規表現スレがいいと聞いてきました
ここがいい正規表現すれですか?
$ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"'
[abc][]
なんで後ろにカッコが来るん?
.*に全部マッチするんだから
二個目の[]が来るなんてお菓子にゃん?
ここがいい正規表現すれですか?
$ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"'
[abc][]
なんで後ろにカッコが来るん?
.*に全部マッチするんだから
二個目の[]が来るなんてお菓子にゃん?
963デフォルトの名無しさん
2023/11/28(火) 13:42:04.64ID:EkqG9ePT perlよく知らんがgとったら消える
964デフォルトの名無しさん
2023/11/28(火) 13:54:45.94ID:uy7CvN4q 推測だが、
1) .*にabcがマッチする -> [abc]
2) .*は0個でもいいので、末尾位置(NUL)にマッチする -> []
1) .*にabcがマッチする -> [abc]
2) .*は0個でもいいので、末尾位置(NUL)にマッチする -> []
965デフォルトの名無しさん
2023/11/28(火) 14:25:52.10ID:uy7CvN4q 2回目は$a=""の場合と同じだと思えばいい
ヌル文字列でも.*だとマッチするでしょ?
ヌル文字列でも.*だとマッチするでしょ?
966デフォルトの名無しさん
2023/11/28(火) 16:18:10.81ID:vIU65Zk5967デフォルトの名無しさん
2023/11/28(火) 16:18:30.67ID:JJPCdnVt 仮に2回目でマッチする何かがあったとしても
.*はgreedyなんだから1回目で消費してないとお菓子イイ
.*はgreedyなんだから1回目で消費してないとお菓子イイ
968デフォルトの名無しさん
2023/11/28(火) 16:20:34.59ID:JJPCdnVt でもなぁ
バグなら今までこんなん気が付かないはずないと思うからどうなんだろ
バグなら今までこんなん気が付かないはずないと思うからどうなんだろ
969デフォルトの名無しさん
2023/11/28(火) 16:21:19.02ID:vIU65Zk5 $ perl -e '$a="abc"; $a =~ s/(.*)$/[$1]/g; print $a . "\n"'
[abc][]
$ perl -e '$a="abc"; $a =~ s/(.*$)/[$1]/g; print $a . "\n"'
[abc][]
後ろに$入れても同じ
行末以降の何にマッチしてんのこれ?
[abc][]
$ perl -e '$a="abc"; $a =~ s/(.*$)/[$1]/g; print $a . "\n"'
[abc][]
後ろに$入れても同じ
行末以降の何にマッチしてんのこれ?
970デフォルトの名無しさん
2023/11/28(火) 16:22:48.63ID:vIU65Zk5 Rubyのコードも持ってきた。持ってきただけだから意味は知らん。
ruby -e 're=/(.*)/; puts %Q(abc).sub(re){ %Q([#$1]) }'
[abc]
ruby -e 're=/(.*)/; puts %Q(abc).gsub(re){ %Q([#$1]) }'
[abc][]
ruby -e 're=/(.*)/; puts %Q(abc).sub(re){ %Q([#$1]) }'
[abc]
ruby -e 're=/(.*)/; puts %Q(abc).gsub(re){ %Q([#$1]) }'
[abc][]
971デフォルトの名無しさん
2023/11/28(火) 16:44:51.01ID:wVUnEJO+ ググってみたがperlのそういう”仕様”として定着してるみたいだな
引っかかったことなかったわ
引っかかったことなかったわ
972デフォルトの名無しさん
2023/11/28(火) 16:47:59.11ID:uy7CvN4q973デフォルトの名無しさん
2023/11/28(火) 16:49:01.41ID:CppHkuHl 0文字と一致させたくなければ.*ではなく.+と書けよ
974デフォルトの名無しさん
2023/11/28(火) 16:59:51.73ID:fB6/42vV >>972
Perlの文字列はNull Terminatedされてないよ
/gだとマッチできないか再度確かめるからzero-lengthのempty stringにマッチするんだとさ
でも同じ位置でempty stringに2回はマッチしないようなチェックが入ってるからそこで抜けるんだとさ
個人的にはバグだと思うけどPCRE準拠でみんな作ってるから同じ動きをさせたんだろうね
regex101で試すとRustだけが一般に期待する動作をしてる
Perlの文字列はNull Terminatedされてないよ
/gだとマッチできないか再度確かめるからzero-lengthのempty stringにマッチするんだとさ
でも同じ位置でempty stringに2回はマッチしないようなチェックが入ってるからそこで抜けるんだとさ
個人的にはバグだと思うけどPCRE準拠でみんな作ってるから同じ動きをさせたんだろうね
regex101で試すとRustだけが一般に期待する動作をしてる
975デフォルトの名無しさん
2023/11/28(火) 17:02:27.57ID:fB6/42vV /(.*)$/みたいに末尾のアンカー入れても結果変わらないから余計におかしい
^を入れたら当然防げるけど
^を入れたら当然防げるけど
976デフォルトの名無しさん
2023/11/28(火) 17:09:04.46ID:vIU65Zk5977デフォルトの名無しさん
2023/11/28(火) 18:08:10.66ID:waKUlTL5 これは長さゼロでマッチした直後に長さゼロにマッチしてposが進まなかったときにマッチを終了するという、頭の悪い正規表現を書くマヌケのために配慮された動作が例外的なんだよ
そのおかげで頭の悪い正規表現を書いても無限ループさせずに済んだことにむしろ感謝するべきだね
そのおかげで頭の悪い正規表現を書いても無限ループさせずに済んだことにむしろ感謝するべきだね
978デフォルトの名無しさん
2023/11/28(火) 18:30:16.15ID:mMoqXMUf (ハクション!
979デフォルトの名無しさん
2023/11/28(火) 19:16:57.98ID:6l9rHssS 単に便利だからゼロ幅マッチさせてるん
$str =~ s/()/$1,/g; やってみるといいのん
$str =~ s/()/$1,/g; やってみるといいのん
980デフォルトの名無しさん
2023/11/29(水) 13:08:47.77ID:yvH2v9xT 正規表現検索は失敗しないかぎり終わらないって話では
abcに対して(.*)$が検索される→「abc+末尾」がマッチ、この時点での位置はcの後ろのゼロ幅
残りの部分に対して再度(.*)$が検索される→「ゼロ幅+末尾」がマッチ、cの後ろのゼロ幅が消費される
残りの部分に対して再度(.*)$が検索される→対象を消費しきっているので失敗→検索終了
abcに対して(.*)$が検索される→「abc+末尾」がマッチ、この時点での位置はcの後ろのゼロ幅
残りの部分に対して再度(.*)$が検索される→「ゼロ幅+末尾」がマッチ、cの後ろのゼロ幅が消費される
残りの部分に対して再度(.*)$が検索される→対象を消費しきっているので失敗→検索終了
981デフォルトの名無しさん
2023/11/29(水) 14:41:21.44ID:lw8jVmFR そういうもんだと思って使ってたわ
それをバグだと思ってる人がいてびっくりぽんや
しかしこういうことに疑問を持つ人は今後伸びるで
それをバグだと思ってる人がいてびっくりぽんや
しかしこういうことに疑問を持つ人は今後伸びるで
982デフォルトの名無しさん
2023/11/29(水) 17:53:32.44ID:AoutXZD6 >>980
その理屈で言えば1回目で対象を消費しきってるから2回目が失敗するべき
1回目で消費しきっているにも関わらず2回目のゼロ幅マッチが成功するなら3回目のゼロ幅マッチだって成功するはず
そうならないのは対象を消費しきってるかどうかを確認せずにマッチを実施しており最終的には2回連続同一箇所でのゼロ幅マッチという失敗条件に合致してはじかれているから
その理屈で言えば1回目で対象を消費しきってるから2回目が失敗するべき
1回目で消費しきっているにも関わらず2回目のゼロ幅マッチが成功するなら3回目のゼロ幅マッチだって成功するはず
そうならないのは対象を消費しきってるかどうかを確認せずにマッチを実施しており最終的には2回連続同一箇所でのゼロ幅マッチという失敗条件に合致してはじかれているから
983デフォルトの名無しさん
2023/11/29(水) 18:01:27.70ID:lw8jVmFR 確かにその通りやな、1度目で消費しきっとるはずや
984デフォルトの名無しさん
2023/11/29(水) 18:06:42.76ID:lw8jVmFR 分かったつもりになってるだけで全然分かってへんのがおるから
ちゃんと本か何かで学習したほうがええで、今までそういう学習をしてへんやろ
ちゃんと本か何かで学習したほうがええで、今までそういう学習をしてへんやろ
985デフォルトの名無しさん
2023/11/29(水) 20:04:08.42ID:x7bR/xfi /(.*)$(.*)$((.*)$){999}/
986デフォルトの名無しさん
2023/11/29(水) 22:25:25.39ID:yvH2v9xT >>985
えーと、つまり
・ゼロ幅は消費されない。パーマネントにゼロであり続ける。なので無限にマッチ可能
・無限にマッチ可能→同じゼロ幅に2回連続マッチしたからといってposを進めたり終了するわけではない
てことかな?
2回目以降が発生するかどうかは、、どうなんだろう
前回と完全に同じマッチになるときは試行せず終わる、っぽいけど
えーと、つまり
・ゼロ幅は消費されない。パーマネントにゼロであり続ける。なので無限にマッチ可能
・無限にマッチ可能→同じゼロ幅に2回連続マッチしたからといってposを進めたり終了するわけではない
てことかな?
2回目以降が発生するかどうかは、、どうなんだろう
前回と完全に同じマッチになるときは試行せず終わる、っぽいけど
987デフォルトの名無しさん
2023/12/01(金) 02:37:28.94ID:07OBAnmr sedの基本正規表現と拡張正規表現だとゼロ幅にマッチしないね
元はPerlのバグだったのが仕様ってことになったのでは?
$ printf 'abc' | sed 's/\(.*\)/[\1]/g'
[abc]
$ printf 'abc' | sed -E 's/(.*)/[\1]/g'
[abc]
元はPerlのバグだったのが仕様ってことになったのでは?
$ printf 'abc' | sed 's/\(.*\)/[\1]/g'
[abc]
$ printf 'abc' | sed -E 's/(.*)/[\1]/g'
[abc]
988デフォルトの名無しさん
2023/12/01(金) 08:09:57.11ID:RWimeGTM /^\w+|$/[$&]/
これが[abc][]になるのはおかしいと感じないよね?
前半が末尾まで食い尽くすから$はマッチしないはずだと思う?
これが[abc][]になるのはおかしいと感じないよね?
前半が末尾まで食い尽くすから$はマッチしないはずだと思う?
989デフォルトの名無しさん
2023/12/02(土) 00:36:44.31ID:/f7jnFb0 挙動を仕様書で厳密に定義しているJavaScriptではこうなってた
https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp.prototype-@@replace
・1回目のマッチが "abc" すべてを消費する
・2回目のマッチは文字列末尾から始まるけど正規表現が.*なのでマッチングに成功する
ただし空文字にマッチした場合、先へ進まなくなることを回避するために
次回開始位置を一つ後ろへずらす処理が入る (12.c.iii.2以下)
これにより3回目のマッチは文字列の終端+1という範囲外の位置から始まることになり失敗に終わる
https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp.prototype-@@replace
・1回目のマッチが "abc" すべてを消費する
・2回目のマッチは文字列末尾から始まるけど正規表現が.*なのでマッチングに成功する
ただし空文字にマッチした場合、先へ進まなくなることを回避するために
次回開始位置を一つ後ろへずらす処理が入る (12.c.iii.2以下)
これにより3回目のマッチは文字列の終端+1という範囲外の位置から始まることになり失敗に終わる
990デフォルトの名無しさん
2023/12/07(木) 23:24:41.69ID:Ug9Hn2aN KEEPのKはあるのにPが無い、何故?
991デフォルトの名無しさん
2023/12/07(木) 23:31:35.71ID:Ug9Hn2aN (?<=uma)musu(?=me) 柿憎い
uma\Kmusu\Pme 柿安い
uma\Kmusu\Pme 柿安い
992デフォルトの名無しさん
2023/12/10(日) 09:57:52.47ID:8JqB6SG/993デフォルトの名無しさん
2023/12/10(日) 13:04:54.79ID:t3u5G9tC $は「後ろが終端である位置」の指定であって「最後まで全部」という意味ではない
なので.+$で文字列を末尾まで消費した後でも再度末尾のゼロ幅にマッチできることはバグでもなんでもない
なので.+$で文字列を末尾まで消費した後でも再度末尾のゼロ幅にマッチできることはバグでもなんでもない
994デフォルトの名無しさん
2023/12/10(日) 14:15:57.63ID:ayXeZXuA 実装上のバグではなく仕様バグだろって話をしてるのがわからないのか?
995デフォルトの名無しさん
2023/12/10(日) 15:43:26.80ID:e6Tz3fj/ .*と$でマッチするものが異なるのに.*と.*|$でマッチするものが変わらないのは明らかにバクってるな
正規表現のパターンを変えるだけでperlでは[abc][]にも[abc]にもできるのにsedではこのバグのせいで[abc][]には絶対にできなくなってる
$ printf 'abc' | sed -E 's/.*|$/[&]/g'
[abc]
正規表現のパターンを変えるだけでperlでは[abc][]にも[abc]にもできるのにsedではこのバグのせいで[abc][]には絶対にできなくなってる
$ printf 'abc' | sed -E 's/.*|$/[&]/g'
[abc]
996デフォルトの名無しさん
2023/12/10(日) 15:44:52.66ID:e6Tz3fj/ s/バク/バグ/
997デフォルトの名無しさん
2023/12/13(水) 11:48:29.08ID:wzNHEkEB ただの仕様だよ、あほらし
次スレよろ
次スレよろ
998デフォルトの名無しさん
2023/12/16(土) 09:00:59.04ID:KMxF6SWS999デフォルトの名無しさん
2023/12/16(土) 09:36:31.90ID:pgUnJUCg 天地無用
1000デフォルトの名無しさん
2023/12/16(土) 10:49:04.16ID:faoSWywL >>998
ほめてつかわす
ほめてつかわす
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 772日 14時間 59分 3秒
新しいスレッドを立ててください。
life time: 772日 14時間 59分 3秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- でもこんなに高市がやらかしても中東みたいにミサイル飛んできたりしないから東アジアってクッソ平和だよなwwwwwwwwwwwwwwww [271912485]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- ほかほかご飯にかけるとうまいもの一覧
- 🏡
- 「これが完成された醜い姿である>>1」←これなに?
