[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
712(1): 2023/06/18(日)16:12 ID:uv5oAAX5(2/2) AAS
「正規表現を用いた文字列抽出の例」図は「誤った正規表現」の例なんじゃないかなあ
例の正規表現では ~.com?fakeID=DEF にもマッチしてしまう
713: 2023/06/18(日)16:13 ID:PO9vLDeK(3/3) AAS
>>711
あなたが示している[1]のsyntax diagram(構文図)[2]にあるように、? はqueryを示す文字で
path( / )以前のドメイン名部分には出てこず、最低限 / の後でなければならないはず。
[1] 外部リンク:en.wikipedia.org
[2] 画像リンク[png]:upload.wikimedia.org
714: 2023/06/19(月)17:12 ID:a4eWUm7x(1) AAS
>色んな意味でおかしい
同意。本当にこの例をNTTの技術者が作ったの?と思ってしまった。
広報担当の事務員が頑張って作った例だと言われたら納得出来るw
715: 2023/06/20(火)13:11 ID:AvErps2d(1) AAS
これは、>>712の人も言ってるように「悪い見本」か、あるいは「プレスリリース用にめっちゃ簡略化した例」のどちらかかと思う
個人的には悪い見本の方かと思う
「?」と「ID」の間のスペースとか気持ち悪いし
716: 2023/06/21(水)01:04 ID:LPKmcd4s(1) AAS
メールアドレスは誤ったアドレスを発行して運用してるところがあると対応せにゃ仕方ないけど
URLは誰もアクセスできないだけで終わるんだろうな
717: 2023/06/21(水)02:01 ID:FL3bkV8O(1/2) AAS
質問
ある文字列の中に、4桁の数字が出た場合、文字列を区切るという目的で正規表現を使いたいです
let hoge="....";
hoge.split(/\d{4}/)
しかし上記の正規表現だと、例えば6桁の数字でも区切ってしまうため、これを4桁に限定するためにはどうしたらよいでしょうか?
718: 2023/06/21(水)02:36 ID:HRXsYHZK(1) AAS
(?<!\d)\d{4}(?!\d)
719: 2023/06/21(水)06:20 ID:FL3bkV8O(2/2) AAS
ありがとうございます
720: 2023/06/21(水)07:00 ID:8S43aXN3(1/3) AAS
修正前 .*(..)?
修正後 .*?(.[^z])?
"abcd"を与えて受理される文字列
修正前 ""
修正後 "ab"
受理してもらいたかった文字列 "cd"
URLからIDを取り出すほうは画像に入るようにデフォルメする必要があるから
おかしいURLになるのはやむを得ないと思う
> (?:[&].*)?
ただこれはちょっと気持ち悪い
省4
721: 2023/06/21(水)07:17 ID:Z+I+bAqU(1) AAS
「abczは拒否」→「なるほど末尾zは拒否だな」
えー…
722: 2023/06/21(水)07:38 ID:SbeXWTV7(1) AAS
書いてないけど前提として完全一致のつもりだったんだろうな
723(1): 2023/06/21(水)10:41 ID:8S43aXN3(2/3) AAS
jsって完全一致が前提になるオプションってある?
それがあったとしても .*?(.[^z])? はAutoだが
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では大丈夫)
^ ?(((?!&gt;?|&lt;?)[[:punct:]])+|&gt;?|&lt;?){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}|&gt;?|&lt;?){4,} ?$
^ ?(?:[[:punct:]]|&gt;?|&lt;?){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 → 削除
上下前次1-新書関写板覧索設栞歴
あと 261 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s