[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
724: 2023/06/21(水)11:16 ID:ld9dVlA3(1) AAS
>>723
シングルラインモード(dotAll)で ^ と $ を使えば良いだけでは?
725: 2023/06/21(水)12:14 ID:8S43aXN3(3/3) AAS
^と$を使うつもりなら画像の中でも使うと思う
見やすくするために省いてるだけなのかな?
そうだとしても .*?(.[^z])? はAutoだが
726: 2023/06/21(水)22:34 ID:g2ig9yOY(1) AAS
ニュー速(嫌儲)で、近頃半角記号を6文字だけとかの書き込みがあります
なんとかNGを作りたいのですがうまく行きません
行頭から記号だけの文字列で4~8文字、って想定でこんなの作ってみたんですが、httpで始まるurlも引っかけてしまいます
^[ -/:-@\[-~]{4,8}
例えばこんなスレなんですが
2chスレ:poverty
詳しい方、正規表現作ってもらえないでしょうか?
727: 2023/06/22(木)09:30 ID:nJDgsm3N(1/3) AAS
そういうのは専ブラのNGスレでやるべきだね、ユーザー同士で情報共有にもなるから
正規表現を適用する対象がHTMLでなくdatだったりでユーザーでないと作れない場合もある
記号だけにマッチさせたいなら[!-/:-@\[-`{-~]だが、この前後に付ける正規表現は
お使いの専ブラスレで聞いてくれ
728: 2023/06/22(木)09:42 ID:TTIYA8nl(1) AAS
そこみる限りでは3パターンしかなくない?
何かしらの絵文字とかが化けて出てるだけとか。
(\$\@\:\^\()|(\_\]\#\)\&\$\}\>)|(\!\^\*\%\&\$\:\~)
729: 2023/06/22(木)10:08 ID:L6AKAbfA(1/2) AAS
726です
726のこれはうまく動かない、と書いたのは、文字間にスペース入ってました
727さんのに変えたら誤動作無く動作しました
^[!-/:-@\[-`{-~]{5,11}
ちなみに、android板に以下のスレを発見しました
しかし、荒らされてて機能して無さそう
他にこっちの方が良いよ、っておすすめのスレはありますかね?
オススメのNGワード
2chスレ:android
730(1): 2023/06/22(木)10:55 ID:nJDgsm3N(2/3) AAS
こちらはそちらが何を使ってるかも分からないので勧めようが無い件
問題は正規表現の後ろに付けるほうなんだけど何を使ってるかで変わると思う
今のままでは12文字以上記号が続いててもNGになっちゃうね
731: 2023/06/22(木)13:11 ID:L6AKAbfA(2/2) AAS
>>730
chmateなんです
その後、2文字だけのにも対応するためこうなりました。言われた通り後ろ側も条件付けました
^[!-/:-@\[-`{-~]{2,11}$
ここがひどいです
2chスレ:poverty
732(2): 2023/06/22(木)14:46 ID:vRMLRvgd(1/2) AAS
方言がひどい記述だけど(PCRE2とbregonig.dllでは大丈夫)
^ ?(((?!>?|<?)[[:punct:]])+|>?|<?){2,} ?$
733: 2023/06/22(木)14:53 ID:vRMLRvgd(2/2) AAS
>>732
はdatに対してのものだから、mateはどうなのかは知らん
POSIX文字クラスが通っても、>とか行頭行末の半角スペースとか無さそうだね
734(2): 2023/06/22(木)23:53 ID:nJDgsm3N(3/3) AAS
GJ
[[:punct:]] これいいね、覚えとこ
(()+){2,}は繰り返しが二重になっててReDosを狙われる懸念があるから
++や(?>)を使ったほうがいいかも
正規表現エンジンの内部でも対策はしてると思うけど念のために
735(1): 2023/06/23(金)01:33 ID:gmkpJif8(1/6) AAS
>>734
+が入ってるのはダメじゃん
除いてくれ
作ってる途中で紛れ込んだものだね
なおbregonig.dllだと
^ ?(?:\p{punct}|>?|<?){4,} ?$
^ ?(?:[[:punct:]]|>?|<?){4,} ?$
でもいけちゃうんだよな
ちょっと不思議
736(1): 2023/06/23(金)02:02 ID:qwakAXsj(1/2) AAS
and検索みたいなのってできない?
今まで[ABC]と[あいう]は2回に分けて検索してたけど1回で済ませたい
737(1): 2023/06/23(金)02:09 ID:gmkpJif8(2/6) AAS
>>736
^(?=.*?ABC)(?=.*?あいう)(?=.*?甲乙丙)
738: 2023/06/23(金)02:35 ID:qwakAXsj(2/2) AAS
>>737
感謝
739: 2023/06/23(金)12:02 ID:2Ntzjt3B(1/2) AAS
[文章]
AAAaiueo111 xxx
aaaaa
AAAkakikukeko xxx
b b b
AAAsasisuseso
ccccc
AAAtatituteto000
ddd123
上記の文章で先頭がAAAの行だけ抜き出して、さらにAAAを削除して末尾にxxxがある場合はxxxも削除する正規表現を考えています。
省4
740(1): 2023/06/23(金)13:06 ID:gnUd2/2c(1) AAS
AAAで始まらない1行|先頭のAAA|末尾のxxx
741(2): 2023/06/23(金)13:54 ID:WBrlaKRC(1) AAS
^AAA|xxx$|^.*\r\n → 削除
742(1): 2023/06/23(金)15:20 ID:2Ntzjt3B(2/2) AAS
>>740
>>741
ありがとうございます。
743(2): 2023/06/23(金)19:05 ID:zWmLGOhD(1/5) AAS
^AAA([^\r\n]*?)(?:xxx)?$|^[^\r\n]*(?:\r\n|[\r\n])?
$1
アク菌で書けませんぞテスト
744(1): 734 2023/06/23(金)19:21 ID:zWmLGOhD(2/5) AAS
>>735
PCRE2では\p{Punct}は存在しないんだね
www.pcre.org/current/doc/html/pcre2syntax.html
[\p{P}\p{S}]で代用になりそう、全角文字にもマッチするけど
プロパティがこれだけいろいろあると全部を把握するだけでも大変だなぁ
> +
言われてみれば+があるのはおかしいw 忘れ物だったのかw
745: 2023/06/23(金)21:34 ID:gmkpJif8(3/6) AAS
>>744
不思議な点は
PCRE2だと、[[:punct:]]で&が先にキャッチされて>のgt;が取り残されてしまうので
|>とあってもマッチしなくなる
bregonig.dllだと
>にキャッチされてマッチする(punctより>が優先される
(PCRE2は最短マッチが優先されて、bregonigは最長マッチが優先なのか?)
これはorの記述の順序には関係なく左に(先に)>を書いても結果は同じ
746(1): 2023/06/23(金)22:07 ID:zWmLGOhD(3/5) AAS
ここのテストサイトで regex101.com/
^([[:punct:]]|>|<)$ を < にマッチさせたら成功したけど
本物のPCRE2ではマッチしないの?余計な半角スペースが入ってたりしない?
それで>>732に要らないはずの先読みを入れてたんだね
これがマッチしないならバグかも知れない
もしまたゴミとかのうっかりミスが原因だったとしても気にしないでね、俺もよくやらかすから
747: 2023/06/23(金)22:09 ID:zWmLGOhD(4/5) AAS
あ、&が化けちゃった
^([[:punct:]]|>|<)$ を > にマッチさせて
748: 2023/06/23(金)22:31 ID:gmkpJif8(4/6) AAS
>>746
今確認したらそのとおりだった
俺は以前一体何をやったんだろう?
749: 2023/06/23(金)22:36 ID:gmkpJif8(5/6) AAS
今考え付くのは
^(?>[[:punct:]]|&gt;)+
とか
&gt;のみ書いといて&lt;に引っ掛かったとかとかかなあ?
750: 2023/06/23(金)22:47 ID:gmkpJif8(6/6) AAS
さすがに(?>)を使って気づかないわけないから(使った覚えもないし)
恥ずかしいけど、gt;とlt;の取り違えをやらかした気がする
751(1): 2023/06/23(金)23:16 ID:zWmLGOhD(5/5) AAS
そういうこと俺もあるから分かるわーw
頭が回ってないときに動作確認するとしっかり確認出来てないのに確認したつもりに
なってしまうんだよなぁ、だから休憩と二重三重の確認はめちゃ大事
間違えた原因は分からないけどとりあえずゆっくり休んでくれw
752: 2023/06/24(土)00:27 ID:X4q59utv(1/4) AAS
勘違いした理由が分かった
^([[:punct:]]|&gt;)+
これをやると&で切れちゃうんだ
s/([[:punct:]]|&gt;)+//g
をやるとgtが置換されずに残る
末尾に$とか目標物を付ければ切れないんだが
さてどうして切れるのか誰か教えて
753: 2023/06/24(土)00:36 ID:X4q59utv(2/4) AAS
やっぱ左側が優先なのか
(&gt;|[[:punct:]])
と入れ替えたら切れない
上下前次1-新書関写板覧索設栞歴
あと 249 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s