22/07/05 11:08:04.06 sc95gC5i.net
議論は別にすきにしろよと思うが人格否定や揚げ足取りは荒れる元だからやめろ
427:デフォルトの名無しさん
22/07/05 11:41:54.88 cG0ybmcU.net
>>417
そらそこは反論を期待して英訳に固執する人を揶揄してわざと悪し様に言ったところだからな、図星だったなら謝るよ
でもまさか本題には一切触れず蛇足だけに突っ込んで人格の否定までして論点をずらすような真似をされるとは思わなかった、よほど気に障ったのだろうか
あ、反論があるなら本題の方をメインで頼むな、他の人に迷惑でみっともないからね
428:デフォルトの名無しさん
22/07/05 12:00:26.75 364oCHD3.net
>>416
おっと焼きおにぎりの悪口はそこまでだ
429:デフォルトの名無しさん
22/07/05 13:10:32 /Cj5WPzT.net
当て身は打撃のことじゃないって言い張る格ゲープレイヤーみたい
430:デフォルトの名無しさん
22/07/05 13:38:26 K5Eu4yGw.net
その攻撃性と被害妄想的な受け取り方はどうにかならんの?普通に会話すればいいだけだと思うのだが
このレスを読んでも攻撃されてると思うの?
431:デフォルトの名無しさん
22/07/05 13:44:47 SfuXrTgV.net
その精神病を当て擦るような言い方
432:デフォルトの名無しさん
22/07/05 16:42:32.77 9eeXBGst.net
>>ID:K5Eu4yGw
議論で熱くなって中傷が混じるのは褒められないことではあるがある程度は容認出来る
おまえは議論の本題に触れもせず、中傷、人格攻撃だけのレス
この違いが分かる?
中傷したいのなら議論の本題に上手く絡めて、やれ
433:デフォルトの名無しさん
22/07/05 17:00:54.47 8BLlx4g8.net
>>415
>正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
それが問題だよねって話をしてるんでは?
正規表現においてpossessiveのことを強欲と呼ぶのは適切ではないという主張に対する反論にはなってないように見えるけど?
434:デフォルトの名無しさん
22/07/05 17:21:05.39 hw2faXZs.net
●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が含まれると思いますが
URLリンク(www.unicode.org)
できれば今回は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箇所だけにマッチする正規表現が知りたいです。
435:デフォルトの名無しさん
22/07/05 17:22:13.40 9eeXBGst.net
> possessiveのことを強欲と呼ぶ
飽く迄、英語をベースに日本語へ訳したいワケね
そういう解釈をしてるからおかしく感じるのだろう
日本語の欲張りに対しての強欲に相当する語が無いから英語ではpossessiveを充てている
英語側の単語が貧窮な都合だ
436:デフォルトの名無しさん
22/07/05 17:43:33.84 9eeXBGst.net
>>426
文字集合の積演算
[\s&&[^\r\n\x0085]]
これにPS,LSも含めればいい
437:デフォルトの名無しさん
22/07/05 17:56:41.32 4sOf+wSV.net
>>427
日本語も欲張りと強欲はどちらも欲深いことを言っているだけで、
欲の深さを示してはいないよ
近いと近距離、どっちの距離が離れているかを示せないないのと同じ
さらに言えば
逆に英語では明確に区別された語(greedy?|possessive)を、
明確に区別できない語([貪|強]欲)に置き�
438:ゥえたのが問題 直訳・意訳ですらない置きかえ 日本語に対して英語を充てたとそう勘違いしてる?
439:デフォルトの名無しさん
22/07/05 18:10:02.38 K5Eu4yGw.net
>英語の人
なんか申し訳ないね、せっかく英語の意味の違いを教えてくれたのにこんなことになってしまって・・代わりに謝るよ、ごめんね
俺も強欲という名前は間違いだと思う、教えてくれてありがとね
440:デフォルトの名無しさん
22/07/05 18:23:23.60 9eeXBGst.net
> 欲張りと強欲はどちらも欲深いことを言っているだけ
そりゃどちらにも「欲深い」の意があるだろう
だがその2つが並んで違いを理解出来無いのならおまえの日本語力に問題がある
普通に日本語を扱える者ならば「強い」を含む側に強い意味合いが込められていると解する
自分が分からなかったからと言ってケチ付けて自己肯定、「俺が悪いんじゃない」するのはみっともない
441:デフォルトの名無しさん
22/07/05 18:29:53.51 4sOf+wSV.net
>>431
そうか、「強」が付いてると強いのか知らなかった
強奪と収奪は強奪の方がより奪えるって理解でいいのかな
勉強になる
442:デフォルトの名無しさん
22/07/05 18:41:45.68 KH2ZmSBP.net
>>427
英語をベースにしないならそれこそrice ballのようにもっと適切な命名があるでしょ
プログラミング分野においてgreedyを貪欲/強欲/欲張りと訳すのが定番化してる中で
正規表現の場合だけは強欲は貪欲とは意味が違うというのが無理筋で悪い命名でしかない
フクロウ本の第3版で変更されてるのも強欲だと違いが分かりにくい/紛らわしいからだと思うよ
いい命名ではないけど貪欲に対して超貪欲とかならまだ賛同できた
443:デフォルトの名無しさん
22/07/05 18:41:56.55 4sOf+wSV.net
ちなみに日本語には無欲と[貪|強]欲の間に[小|少]欲ってのがあって、
こっちは明確に欲が少ないと定義されてるんだが、
普通に日本語を扱える者は「小さい」あるいは「少ない」欲の対義語として
「強い」欲となることに違和感を持たないものかな?
…とここまで書いて気付いたけど、貧と強が欲の深さを表してると思ってたってことか
かわいいね
444:デフォルトの名無しさん
22/07/05 19:04:14.64 K5Eu4yGw.net
昔は強欲でも困らなかったんだろう、しかし時代は変化していくからな
日本人にとって英語がより身近になれば英語から見ておかしい訳は淘汰されていくだろう
野球のカウントが S B O から B S O の順に変わったのと似てる、野茂以前では S B O で何の不都合も無かった
メジャーリーグを大リーグと呼ぶ訳は英語が分かる人から見てどう思うのか少し気になるw
445:デフォルトの名無しさん
22/07/05 19:04:56.60 TINjq0RZ.net
>>430
私(415,419)に対する人格攻撃や精神疾患への当て擦りととられる発言まで晒しておいて自身の行為は謝罪しないのな
一般に貪欲も欲張りも強欲もまとめてgreedなのもpossessiveが強欲でないこともあなた以外全員知ってた
その上で用語として定義されたものを訳とみなしたときの気持ち悪さについて議論している
絶対最大の英訳がpossessiveとかそれこそあり得ないだろ?
446:デフォルトの名無しさん
22/07/05 19:05:56.36 9eeXBGst.net
> 強奪と収奪
「奪う」はどちらも同じ
収は集める意が含まれる
強奪の強は「強引に」の意
ひったくりは収奪よりは強奪
村やビル占拠して人質脅して金品出させるようなのは「集める」ので収奪
収奪だって「奪う」ので「強制」的、強奪ではあるが「集める」方をより強調させた言葉
あと言葉はふわっとしてるもので意味するところはある程度の範囲がある
「奪う」の意が同じなのでどちらでも問題が無い場合もあるだろう
だが
> その2つが並んで違いを理解出来無いのなら
と書いたように両者を用いているのであれば、そこに違いがあって当然なわけで普通はその差異を汲み取れる
447:デフォルトの名無しさん
22/07/05 19:31:46.72 K5Eu4yGw.net
>>436
いや俺そこまでのことは言ってないと思うのだが
そんなつもりではなかったのでそれ以上に受け取ったなら謝るよ、ごめんね
>絶対最大がpossessive
日本語から英語への翻訳がこれだったら変だと思うね
448:デフォルトの名無しさん
22/07/05 19:45:12.44 4sOf+wSV.net
>>437
> 強奪の強は「強引に」の意
そういうことまでわかっていながら強欲についは頑なに強いと思ってるその認知はどこから来てるんだろう
大欲じゃいけない理由も知りたい
449:デフォルトの名無しさん
22/07/05 19:52:54.12 9eeXBGst.net
> 強欲についは頑なに強いと思ってるその認知は
>> その2つが並んで違いを理解出来無いのなら
が理解出来無い?
『「欲張り」と「強欲」が併用されている場合』に
どちらが強い意味合いを持つのかは一目瞭然な訳だが
まだ続けるの?
450:デフォルトの名無しさん
22/07/05 20:03:46 9jUwBfIC.net
SunやMicrosoftが使ってる以上、意味はどうあれ専門用語として取り扱うべきである
俺は嫌だから使わないってのはいいけど
他人が使ってるのをそんな言葉知らんぞ、間違ってると指摘するのは異常人
451:デフォルトの名無しさん
22/07/05 20:05:32 4sOf+wSV.net
>>440
思い込みじゃなくそうと示された他の資料を欲しい
一目瞭然なら当然どこかしらに示されてるだろうけど、
webの辞書や記事と手元の辞書ではその差を確認できなかったから
452:デフォルトの名無しさん
22/07/05 20:07:09 4sOf+wSV.net
>>441
MSはかつてそういう指摘に応えて使用する用語を変えてきた実績があるよ
一度決めたら二度と変わらないって会社ではない
453:デフォルトの名無しさん
22/07/05 20:11:53 4sOf+wSV.net
>>441
Oracleは日本語を正とせず英語を正としろって立場を採ってるよね
誤訳がありうるってことだし、誤訳によりライセンス内容の整合性がとれなくなったMSの事例もあるね
454:デフォルトの名無しさん
22/07/05 20:25:49 mmXAp8Yt.net
なんだなんだ
「強欲」って用語が指していることを理解してなくて会話がかみ合わなかった週末の人、
数日経ってもまだ「ぼくちゃんまちがってないもんえいごだとこうなんだもん」って駄々こねて80レス位進んでるのか・・・・・
ちょっとした勘違いとかちゃんとした日本語のドキュメントに目を通してなかったとか誰にでもあることなんだから
それこそ貧欲って書いてた人みたいに一言間違ってたわwって言うくらいで収まることだと思うんだけどなあ
悪いけどやってること恥の上塗りだよ?
455:デフォルトの名無しさん
22/07/05 20:35:51.78 K5Eu4yGw.net
もう ひんよく と きょうよく でいいよ
456:デフォルトの名無しさん
22/07/05 22:07:33.30 mmXAp8Yt.net
同一人物のくせに他人のフリとかどんだけ面の皮厚いんだよ・・・とか一瞬思ったけど
ID:K5Eu4yGw と ID:nkFK6+7O ID:4sOf+wSV は別人だったのか
見分けついてなくて同一レベルのゴミかと思ってたわごめん
457:デフォルトの名無しさん
22/07/05 22:30:45.62 JtY8aViY.net
口語だと基本的に最短一致、最長一致、バックトラックしない最長一致って言ってる
欲張りとか強欲とか実際に口に出して言ってる人には出会ったことないわ
458:デフォルトの名無しさん
22/07/05 22:50:11.96 MNnvUB1p.net
(非探索)最長一致
(最)多一致
(最)少一致
どちらも「最長」だと紛らわしさがあるので
でも「強欲」で定着しているものをわざわざ言い換える程の事でも無いと思う
459:426
22/07/06 00:22:09.50 ToTyGXGb.net
>>428
\x0085を\x{0085}に変えて
[\s&&[^\r\n\x{0085}\x{2028}\x{2029}]]でOKでした
積演算&&の有効な使い方を初めて知りました
どうもありがとうございました
460:デフォルトの名無しさん
22/07/06 02:03:37 7JN09BFV.net
\R*+\K\s
461:デフォルトの名無しさん
22/07/06 05:39:49.51 FCzm9xaa.net
口頭ってことは対面レビューとか他の人と共有するソースコードでの正規表現だよね?
そうなると、相手のスキルレベルにもよるけど
「強欲」って単語だけで
462:なく強欲な正規表現自体も避けておくかなあ このスレのうんざりする流れを見てもわかるとおり「強欲」が相手に通じるとは限らないし (強欲な正規表現なんて使ったことがない人のほうが多数派だろうし) 最長一致で事足りるなら多少のパフォーマンス悪化には目をつぶる チャットとかなら「++」みたいな具体例を明示して「強欲」って単語を使うかな ここみたいな正規表現スレならなにも前提を置かなくとも普通に「強欲」で通じるものとして会話するけど・・・ 会話が成り立たなかったうえに間違いを指摘されても「英語だと」「口語だと」「xxxだと」とか延々ゴネる人とは会話したくないなあ いい加減NGしたいからコテつけてくれるとありがたい
463:デフォルトの名無しさん
22/07/06 06:39:20.23 5qGkM3IH.net
しかし回答者のレベル低下が酷いな
ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
$1,$2の件や強欲のすれ違いについても積極的に事態の収集を図ろうとせず悪化させて悪乗りするとはね
464:デフォルトの名無しさん
22/07/06 06:47:28.85 TTp+bFLp.net
英語名を変えさせたら良い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い
465:298
22/07/06 06:53:49.49 ZAN9ui5m.net
>>361
> それ書いてる>>314には$1なんてどこにも書いて無いのにw
つまり、>>314の「,」があまりに小さくて見えなくて、
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
これしか書いてなくて、
2行目の$1,$2を省略したと思ったのですw
466:デフォルトの名無しさん
22/07/06 07:02:49.27 5qGkM3IH.net
ここの回答者はそう勘違いしてるのを知ってて何も助言しなかったんだぞ、馬鹿にして笑ってたんだよ
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった
467:298
22/07/06 07:06:06.70 ZAN9ui5m.net
秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511
~
~
で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++ ←は>>314さんの教えてくれたヤツ。
468:デフォルトの名無しさん
22/07/06 07:09:45.51 SZC2q9b+.net
これ非包含演算子に粘着してるのと同じやつだろ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ
469:デフォルトの名無しさん
22/07/06 07:46:05.23 o/55z/m0.net
>>453
再質問来てるぞ
> ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
おまえがお手本見せてやれや
回答者をバカにするくらいだから余裕だろ?
>>457
>>320
使い方分からないならJSスレか初心者スレ行って聞いたらいい
470:298
22/07/06 08:07:45.17 ZAN9ui5m.net
>>459
↓って英語だからどうやって使っていいのかわかりません。
URLリンク(pastebin.com)
471:デフォルトの名無しさん
22/07/06 11:44:54.56 MXaUuSJv.net
まず英語の勉強をするべき
472:デフォルトの名無しさん
22/07/06 12:10:15.16 c6fRPAAn.net
CSV の正規表現なんて、数千行ぐらい掛かるだろ。
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル
473:デフォルトの名無しさん
22/07/06 13:40:21.16 gR1YTmZs.net
>>462
なんでCSVのパースする前提になってるんだ?
webの店舗情報のテキストをCSVにするのになんでクォート内の対応を気にする必要がある?
474:デフォルトの名無しさん
22/07/06 15:43:31.34 MXaUuSJv.net
KEИTAはでたらめ
475:462
22/07/06 17:15:52.66 c6fRPAAn.net
行区切り文字の改行、列区切り文字のカンマ、
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない
476:デフォルトの名無しさん
22/07/06 17:19:01.24 QeuQIz9d.net
なんか話脱線マウントしまくって会議やコードレビュー下手くそで顰蹙を買いまくってそうな人来てるやん
477:デフォルトの名無しさん
22/07/06 17:55:19.63 gR1YTmZs.net
>>465
混ぜなきゃいいのでは
478:デフォルトの名無しさん
22/07/06 19:01:53.46 kQhbtDqq.net
いつも文体一緒だからバレる
479:デフォルトの名無しさん
22/07/06 19:30:39.95 5qGkM3IH.net
>> 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の細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ
480:デフォルトの名無しさん
22/07/06 19:34:28 5qGkM3IH.net
ミスった
1回目の置換欄
( 空欄にして )
これは2回目だね
481:デフォルトの名無しさん
22/07/06 19:39:45 5qGkM3IH.net
全国の店舗一覧を取得したいならwgetなどで各店舗一覧ページをローカルに保存してからnotepad++のファイル一括置換でまとめて置換したほうが楽
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて
482:デフォルトの名無しさん
22/07/06 23:10:34.54 gFUK7vgi.net
ホンの少し複雑化しただけで頭の悪さや性格って浮かび上がるよねw
483:デフォルトの名無しさん
2022/07/07
484:(木) 16:29:53.46 ID:ls1FMHZL.net
485:デフォルトの名無しさん
22/07/07 16:37:27.46 3hUwVJb0.net
掃除して整形してからやるのがコスパ良いに決まってる
力業いくない
486:デフォルトの名無しさん
22/07/07 17:27:59.03 EezL89dt.net
ケースバイケースやろ
487:デフォルトの名無しさん
22/07/07 17:45:22.88 QZNfJ5wA.net
答え合わせ出来るとか、間違いに気付き易いor間違い難いケースは1発
合ってるか分かり難い場合は間違い難い正規化式で段階踏む
488:デフォルトの名無しさん
22/07/08 12:52:02 /znuHP85.net
パイプ・フィルターみたいに、どんどん変換していく方が分かりやすい。
処理A | 処理B | 処理C
Ruby の正規表現では、3種類の改行を、\R と書ける
/\r\n|\r|\n/
/\R/
489:デフォルトの名無しさん
22/07/10 17:44:55.47 0O2dRiW8.net
>possesive
ポジティブ
490:デフォルトの名無しさん
22/07/16 01:09:47.27 gUwlqT3Y.net
そして誰もいなくなった
491:デフォルトの名無しさん
22/07/16 09:09:55.88 L4T2PUf2.net
民度の低い異常者が常駐してたらそりゃ関わりたくないもん
492:デフォルトの名無しさん
22/07/16 11:12:47.12 WasoqaBj.net
自己紹介乙
493:デフォルトの名無しさん
22/07/20 06:49:04.62 v4tHM0fs.net
●Regular Expressionの使用環境
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字
を
同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。
494:デフォルトの名無しさん
22/07/20 07:23:49 iuCM0uSo.net
説明にない[は何?
495:デフォルトの名無しさん
22/07/20 08:35:20.99 jm1i1IHH.net
>>483
すみません希望する結果はこちらでおねがいします
[ぬるぽ]
[ガッ]
[hoge]
496:デフォルトの名無しさん
22/07/20 09:04:35.27 Fdf9zFh2.net
テスト
\[(.+?)(.*?\1)\](?\2)
497:デフォルトの名無しさん
22/07/20 16:27:05.86 f63hBcuy.net
(.+).+?\1
$1
498:デフォルトの名無しさん
22/07/20 16:30:30.08 OlkAUELc.net
[ wow & wow]
499:482
22/07/20 17:48:38.07 VWdn2Di+.net
>>486さんの正規表現で上手くいきました
ありがとうございました
500:デフォルトの名無しさん
22/08/28 01:14:30.52 y+9tLdhC.net
正規表現の先読み・後読み URLリンク(zenn.dev)
501:デフォルトの名無しさん
22/08/28 07:40:58.02 MbqzPdhg.net
perlでは/.*hoge/より/.*?piyo/の方が圧倒的に速いのか
ステップ数は大して変わらなそうなのに
502:デフォルトの名無しさん
22/08/28 08:17:37.04 e6Sjxbuq.net
>>490
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから
503:デフォルトの名無しさん
22/08/28 08:52:32.95 7Mb5USF7.net
>>491
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと
504:デフォルトの名無しさん
22/08/28 09:11:11.32 dcB5AKwO.net
>>492
そりゃそういうケースもあるけどそうでないケースの方が多いだろ
505:デフォルトの名無しさん
22/08/28 10:55:00.88 V92k17Tf.net
489の記事・コメントを見たけど
「.*hoge.*」
と
「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても
506:デフォルトの名無しさん
22/08/28 12:06:13.62 3aiLuiYL.net
マッチする場合はそれほどステップ数は変わらないけど
マッチしない場合のステップ数の差は大きいね
507:デフォルトの名無しさん
22/08/28 12:10:20.88 iCw3MfJc.net
(?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ)))
これって何か間違ってますか?280が消えない時があります
508:デフォルトの名無しさん
22/08/28 12:33:21.57 4oWDpmI8.net
[22][88][00]
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし
509:デフォルトの名無しさん
22/08/28 14:30:01.62 HKThARKH.net
なぜ組み合わせたいのかがよくわからんな
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?
510:デフォルトの名無しさん
22/08/28 14:36:53.39 q8tm2XHG.net
単発のNGの他に連鎖NGとかIDごとNGとかあるだろ
わからないなら黙ってろよ
511:デフォルトの名無しさん
22/08/28 16:16:08.48 XxcpkpFs.net
ごめん
512:デフォルトの名無しさん
22/09/04 01:47:12.24 0/i0sC9q.net
GNU grep 3.8 (2022-09-02)から-Pオプションのリンク先がPCRE2になったらしい
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど
513:デフォルトの名無しさん
22/09/04 07:42:45.45 pCQ9P7Vy.net
1
2
あ
10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?
514:デフォルトの名無しさん
22/09/04 08:41:45.13 x2tuNrOY.net
URLリンク(www.simple-edition.com)
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
URLリンク(weblabo.oscasierra.net)
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?
515:デフォルトの名無しさん
22/09/04 09:08:03.10 MIQciAoV.net
>>503
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])
516:デフォルトの名無しさん
22/09/04 09:46:10.78 ZQZ632xa.net
>>503
[0-9]{1,3}
これだと結果でるようだけどそのサイトm値省略不可なのでは
他に | のorも説明ないようなのでダメとか
正規表現文法どこまで対応してるかは動かす環境次第なので質問テンプレートにも入力項目になってんだけど
>>1
517:デフォルトの名無しさん
22/09/04 10:07:01.01 qlj2b1lm.net
すまない
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮
518:デフォルトの名無しさん
22/09/04 10:19:49.12 NNtN3+VI.net
まあ案件次第だけど
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保
519:守を含めて簡単かと思う
520:デフォルトの名無しさん
22/09/13 19:48:53.80 aae9uQ50.net
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。
521:デフォルトの名無しさん
22/09/13 20:02:34.86 BFM47HY2.net
(?<!^)000+(?!$)
-
522:デフォルトの名無しさん
22/09/13 20:23:28.22 el3nukes.net
00000 → 0-0 ?
523:デフォルトの名無しさん
22/09/13 20:37:38.14 G28B9gdh.net
ああ、
00001200030000
を
0-12-3-0
とするのか (>>509のやつ)
先頭末尾に繋がっている0は無視したい
000012-30000
のか例からだと不明だね
524:デフォルトの名無しさん
22/09/13 21:45:26.67 aae9uQ50.net
508です。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。
525:デフォルトの名無しさん
22/09/13 22:09:54.11 jeF3JQfM.net
>>511
> 先頭末尾に繋がっている0は無視したい
こんな条件どこから出てきたんだ?
526:デフォルトの名無しさん
22/09/13 22:20:12.97 GLLSFlxd.net
「文中(先頭及び文末以外)の0」が連続して3つ以上並ぶ部分
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」
527:デフォルトの名無しさん
22/09/13 22:24:49.17 clq+OpKM.net
^([1-9]+)0+(\d+)$ --> $1-$2
でいかがでしょう
528:デフォルトの名無しさん
22/09/13 22:33:07.80 clq+OpKM.net
あ、「ゼロ3つ以上」を満たしてなかった
また考えますー
529:デフォルトの名無しさん
22/09/13 22:35:39.26 clq+OpKM.net
^([1-9]+)0{3,}(\d+)$ --> $1-$2
でしょーか
530:デフォルトの名無しさん
22/09/13 22:46:39.11 7uE/UK4/.net
010001
531:デフォルトの名無しさん
22/09/13 23:08:19.66 G28B9gdh.net
>>513
> 文中(先頭及び文末以外)の0が
の説明と例からだと
「先頭以外」が先頭の0、1文字を指すのか
先頭から続く0の塊を指すのか不明でしょ
> 3つ以上並ぶ部分
が強欲なのか?欲張りでいいのか?が不明 >>511 さんの質問だね
532:デフォルトの名無しさん
22/09/13 23:09:06.59 G28B9gdh.net
>>519
訂正、>>510さんの質問
533:デフォルトの名無しさん
22/09/13 23:10:13.89 aae9uQ50.net
みなさんありがとうございます!
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。
534:デフォルトの名無しさん
22/09/13 23:20:09.73 aae9uQ50.net
そして自分でも要件を言葉にできておらず申し訳ありません
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000
↓
000012-34000
となります。
返信遅くなりすみません。
535:デフォルトの名無しさん
22/09/13 23:44:59.39 G28B9gdh.net
(?<!^)(?>0{3,})(?!$)
未test
最初のマッチだけ置換は以下
URLリンク(social.technet.microsoft.com)
536:デフォルトの名無しさん
22/09/14 00:51:16.34 4SNfctPQ.net
>>518
あかんすね…
^(0*)((0{0,2}[1-9])+)0{3,}([1-9]\d*)$ --> $1$2-$4
これはどーでしょう?
537:デフォルトの名無しさん
22/09/14 05:23:58.73 E5sTi1VY.net
([1-9])0000*([1-9][0-9]*)
$1-$2
538:デフォルトの名無しさん
22/09/14 09:12:22.80 Kn3Wl+2J.net
(?<=[1-9])(?>000+)(?!$)(.+)$
-$1
539:デフォルトの名無しさん
22/09/14 09:38:59.41 s0UMl1ds.net
(^[^0].*?)0{3,}([^0].*?$)
$1-$2
540:デフォルトの名無しさん
22/09/14 10:42:18.62 6Qq1IObP.net
○ >>524,525,526
✕ >>523,527
541:デフォルトの名無しさん
22/09/14 19:22:12.74 +0SwTq6N.net
508です。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。
542:デフォルトの名無しさん
22/09/14 19:57:00.91 b2aEm1i9.net
回答にある正規表現は置換回数を指定できない置換方法でも大丈夫
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい
543:デフォルトの名無しさん
22/09/14 22:22:31.78 +0SwTq6N.net
>530
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。
544:デフォルトの名無しさん
22/09/18 12:56:41.18 QaJ1iFM2.net
githubで結構探したんですがそれっぽいのが見つからず、お力お貸しください。
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"
545:デフォルトの名無しさん
22/09/18 16:16:05.56 wjpqonb4.net
>>532
URLリンク(regex101.com)
546:デフォルトの名無しさん
22/09/18 19:20:15.15 /uA/jgNo.net
>>533
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。
547:デフォルトの名無しさん
22/09/18 21:26:30.42 CbZe8FP4.net
"を
\"
や
\x22
に置き換えて試してみてわ
548:デフォルトの名無しさん
22/09/19 16:41:30.36 4iw9Mtek.net
>>535
ありがとうございます、いけました
(ついでに””も削除)
\x22.*\x22\s|\x22
549:デフォルトの名無しさん
22/09/20 02:58:09.09 94I1wBUa.net
二重引用符のエスケープは重ねて""だな
"".*""\s
550:デフォルトの名無しさん
22/10/29 13:09:46.30 ec13kmtS.net
●Regular Expressionの使用環境
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000~0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >
551:= 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ライブラリが有れば教えて欲しいです
552:デフォルトの名無しさん
22/10/29 19:31:13.26 9Ey1MUJ8.net
>>538
\0@って何?
\c@でNULL文字検索の意味ではないの?
553:デフォルトの名無しさん
22/10/29 19:42:35.80 ec13kmtS.net
>>539
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります
554:デフォルトの名無しさん
22/10/30 10:24:48.15 dZd+t5oq.net
スプレッドシートで20221030と入力されている数字を日付の表記?2022/10/30なのか10/30/2022なのかわからないけどDATEDIF関数に使える形に置換する正規表現ってどう書きますでしょうか
555:デフォルトの名無しさん
22/10/30 11:55:42.97 oF72FRjI.net
>>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")
556:デフォルトの名無しさん
22/10/30 12:28:15.07 S1PTRz+V.net
>>541
=DATEVALUE(REGEXREPLACE(A1, "^(....)(..)(..)$", "$1/$2/$3"))
>>542
スレチ
557:デフォルトの名無しさん
22/11/02 14:16:53.69 gx4Z74sz.net
すいません。
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33
558:デフォルトの名無しさん
22/11/02 14:20:50.51 4jxQNd6r.net
^\d+$
559:デフォルトの名無しさん
22/11/02 14:26:53.26 gx4Z74sz.net
ありがとうございました!
560:デフォルトの名無しさん
22/11/02 14:39:57.52 Hz9+pCnD.net
00
00000000
012
003102
とかはええんかC言語だと8進数なんだけど
561:デフォルトの名無しさん
22/11/02 14:57:45.88 mLb2a5cx.net
最近は8進数を0oと書くのが主流じゃね?
562:デフォルトの名無しさん
22/11/02 15:14:09.32 gx4Z74sz.net
いやよくないのですが。。
563:デフォルトの名無しさん
22/11/02 22:52:34.87 WMtJS4K4.net
>>547
なぜC言語?
564:デフォルトの名無しさん
22/11/03 13:08:35.66 yr3S2O5F.net
^(?:0|[1-9]\d*+)$
565:デフォルトの名無しさん
22/11/03 23:35:12.45 gGr9RQjz.net
A(B(1), C(2)), B(3), C(4), A(D(5))の
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?
566:デフォルトの名無しさん
22/11/04 00:21:55.02 Rv2RlvZT.net
A\([BD]\([15]\)(, C\(2\))?\)
567:デフォルトの名無しさん
22/11/04 00:32:30.76 u3TD418O.net
>>552
関数名は英数字1文字、ネストされた関数の引数は数字1文字にしてるけどこんな感じでいけるかと
\w\(\w\(\d\)(?:,\s*\w\(\d\))*\)
URLリンク(i.imgur.com)
568:デフォルトの名無しさん
22/11/04 19:23:25.88 aOu/uEdM.net
>>553-554
参考になりました
ありがとうございます
569:デフォルトの名無しさん
22/11/05 19:55:25.05 xnenmrxP.net
下のようなテキストがあった時、
フシギダネ、たねポケモン。生まれてから、しばらくの間は背中のタネから栄養をもらって大きく育つ。
フシギソウ、たねポケモン。背中のつぼみがふくらみだすと、あまい匂いが漂い始める。
フシギバナ、たねポケモン。雨の降った翌日は、背中の花の香りが強まる。
その行で最初に出てきた「、」だけをTabで置換したいのですが、
正規表現でなんとかできますかね?(´・ω・`)
570:デフォルトの名無しさん
22/11/05 19:57:13.42 Gow5Zgrm.net
顔文字が気持ち悪い
571:デフォルトの名無しさん
22/11/05 19:57:30.67 KyEMh/LJ.net
マルチラインモードのg無し置換でええのでは?
572:デフォルトの名無しさん
22/11/05 20:01:38.81 xnenmrxP.net
すみません。7分で自己解決しました。(´・ω・`)
573:デフォルトの名無しさん
22/11/06 18:52:14.69 Ju9kLy6l.net
>>559.replace('(´・ω・`)', '');
574:デフォルトの名無しさん
22/11/06 18:56:40.82 gpiofWbc.net
>>560
エスケープしろ
575:デフォルトの名無しさん
22/12/01 00:48:55.16 7b6m1q/M.net
師走だ
576:デフォルトの名無しさん
22/12/01 20:43:42.13 MJwbaGOX.net
>>556
^(.*?)、(.*)$ → $1¥t$2
577:デフォルトの名無しさん
22/12/07 17:35:07.95 hI2dpmO3.net
正規表現はコードを分かりにくくする非常に悪い技術だと思います。
早く廃止され、代替方法が見つかってほしいです。
578:デフォルトの名無しさん
22/12/07 18:06:34.78 Zr5hf/of.net
それは思うけどqwertyキーボードですらこの半世紀何も変わってないし、Legacy引き摺る類のUIは余程の転換期でも起こらない限り無理なんじゃないかな
579:デフォルトの名無しさん
22/12/07 18:23:42.79 IT7suRvF.net
>>564
わかりやすくて使い物にならないものができあがる予感
580:デフォルトの名無しさん
22/12/07 18:33:23.28 8ZB5Tvh5.net
物事の「本質的な複雑さ」を解決しようとしても「その場でぐるぐる回り続ける」ハメになるだけ(どこにもたどり着くことはない)
581:デフォルトの名無しさん
22/12/07 21:37:36.61 lzjCqHmQ.net
正規表現を分かりやすい自然言語や仕様記述に変換するサービス作れば解決
正規表現を生成する機能も用意して最適化オプションもつければ有償で十分やっていける
582:デフォルトの名無しさん
22/12/07 22:46:38.37 0xPH+d9p.net
>>568
とりあえずそう言うアプリにお前ならいくら払うんだ?
583:デフォルトの名無しさん
22/12/08 10:58:46.31 c3lwHRlZ.net
>>564
それはそうなんだけど
徹夜で必死に考えいいアイデアを提供して下さい
584:デフォルトの名無しさん
22/12/11 15:34:21.97 xFkTi0uS.net
abc-ABC
abcd-ABC-def
abcde-defghi-ABC
ab-def-ghi-ABC
-ABCより前にハイフンのない-ABCを選択するのに3,4行目を除外する事で出来たのですが直接-ABCを選択するような事って出来ますか? 使うのはpythonです。よろしくお願いします
585:デフォルトの名無しさん
22/12/11 15:49:22.27 xFkTi0uS.net
あ、行頭を指定すれば簡単に出来ましたスレ汚しすみませんでした
586:デフォルトの名無しさん
22/12/26 08:14:24.98 G31tf+Le.net
質問です
私に全然知識がないのですごい初歩的な質問になるのですが
例えば“テキ”を検索するとして
“仮テキスト”となっているのは除く、
ホワイトリストを付随するような検索をするにはどうすればいいでしょうか?
私が試したもの、
(?<!仮)テキ(?!スト)
↑例えばこれだと“仮テキ”や“テキスト”まで除かれてしまいます
(おそらく「そりゃ当たり前だろ」と思われる事を言ってると思うのですがなにぶん知識がないためご容赦ください)
正規表現を使う場所としてはchmateやFirefoxアドオンなどで使っています
浅学バリバリな質問なのですがどうかご回答よろしくお願いします
587:デフォルトの名無しさん
22/12/26 08:18:23.33 LqfRRdYe.net
>>573
知識以前にお前馬鹿そうだから、>>2のテンプレ使って書き直して
588:デフォルトの名無しさん
22/12/26 10:07:19.58 5uJMWDBy.net
(?<!仮)テキ|テキ(?!スト)
589:デフォルトの名無しさん
22/12/27 04:47:48.03 xSShEST7.net
>>574
すいません、確かにテンプレ使った方が良かったですね…
>>575
ありがとうございます
単純な話だったんですね…
教えて貰って図々しいのですが
長くなってもいいので“仮テキスト”という続いた文字列を含めて
同じ動作をする正規表現はあるのでしょうか?
あった場合教えていただきたいです…
590:デフォルトの名無しさん
22/12/27 17:03:22.33 G2ophMPv.net
テキ(?!..(?<=仮テキスト))
591:デフォルトの名無しさん
22/12/28 01:36:28.87 Ztu+b3Ae.net
>>577
ありがとうございます
仕組みも分かったため複数指定もでき望んでいた事がやれました
初歩的な事にわざわざお付き合いいただきありがとうございました
592:デフォルトの名無しさん
22/12/29 18:17:40.05 HWC94+Gl.net
正規表現は半年後の自分がメンテできないから嫌なんだわ
特にその時適当に書いて辛うじて動いてるやつなのか会心の出来だったやつなのか一見判らなくて困るんだわ
正規表現に10段階ぐらい完成度のタグを付けたいのだよハイパーテキスト的にな
そういう気の利いて手軽な方法はないのかのう
593:デフォルトの名無しさん
22/12/29 19:06:41.81 W/by+W2J.net
人から貰った正規表現を理解もせずに自分の物にしていないからそんな事が起こる
自分で書いた正規表現なら何年経ってもパッと見りゃ内容解る
と言うか年々理解度が向上するから、見てがっかりして書き直すまである
594:デフォルトの名無しさん
22/12/29 19:37:11.07 HWC94+Gl.net
>と言うか年々理解度が向上するから
若いってええなあ
あと10年もすれば昔の自分の方が頭いいじゃねえか状態になるから今ががんばり時だよ
595:デフォルトの名無しさん
22/12/29 19:46:27.85 JPv7+i4s.net
>>579
コメント付けられる方言もあるがな
596:デフォルトの名無しさん
22/12/29 20:16:21.35 Y6+rT86n.net
>>581
すまんもう60越えとる
597:デフォルトの名無しさん
22/12/29 21:08:41.79 5pKgQfqK.net
テスト書かないんだろ
598:デフォルトの名無しさん
22/12/29 23:00:20.15 zukJLKA9.net
そのうち、こうこうしたいと書くとそれに合った正規表現を出力するAIが出て来る
たぶん
599:デフォルトの名無しさん
22/12/29 23:37:13.29 VQTP+Rjm.net
>>585
今でもchatGPTで出来る
600:デフォルトの名無しさん
22/12/30 00:14:09.14 QnG1dvSt.net
今では正規表現中にコメントが書ける(拡張形式ignore whitespace)ものも多いのでは
601:デフォルトの名無しさん
22/12/30 01:37:49.63 1dcL6xM/.net
>>586
あれサラッとでまかせ混ぜてくるから油断ならん
まさに詐欺師の所業よ
602:デフォルトの名無しさん
22/12/30 05:43:41.86 gQwuuolL.net
正規表現の高齢化問題
今の子って正規表現に触れる機会あんのかなあ
糞みたいなエスケープシーケンスの概念込みで教えなきゃならんし
授業ではすきっぷやな
603:デフォルトの名無しさん
22/12/31 09:31:33.47 3UMVip3o.net
>>585
ここが…
604:デフォルトの名無しさん
22/12/31 19:47:02.85 yp0KXAnH.net
字幕ファイルの修正で秀丸を使って
文字列の置き換えしたいと考えています
置換前
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”
お願い致します
605:デフォルトの名無しさん
22/12/31 21:20:45.11 gFIlpiwK.net
せっかく秀丸スレあるんだからそっちで聞けばいいのに
HmJre.dll V.510
^([0-9:]+):([0-9]{2}) - ([0-9:]+):([0-9]{2})$
\1.\20,\3.\40
606:591
22/12/31 22:37:29.30 yp0KXAnH.net
大晦日のツンデレさんに圧倒的感謝!!
ありがとうございます
607:デフォルトの名無しさん
23/01/04 10:29:42.45 vMZ55Vj6.net
教えてくださいm(__)m
[あああ(いいい)]
のような文字列を
[いいい](あああ)
と置き換える方法はあるでしょうか
608:デフォルトの名無しさん
23/01/04 12:23:22.97 gCqYqHxa.net
[あああ(いいい)]で検索して
[いいい](あああ)で置換する
609:デフォルトの名無しさん
23/01/04 12:35:30.42 Gtp9NVd3.net
テンプレ無視する馬鹿にはその答で十分だわな
610:デフォルトの名無しさん
23/01/04 12:40:09.77 k64eH4zi.net
まあ一例として
s/\[([^\[\]\(\)]+)\(([^\[\]\(\)]+)\)\]/[$2]($1)/
611:デフォルトの名無しさん
23/01/04 13:41:53.53 sAqw0ZzI.net
>>594
URLリンク(glot.io)
import pegs
echo "[あああ(いいい)]".replacef(peg" '[' {@} '(' {@} ')' ']' ","[$2]($1)")
でいける
612:デフォルトの名無しさん
23/01/04 18:30:34.43 REieKqQf.net
文頭や文中にあるauだけをNGするやつ教えて下さい
613:デフォルトの名無しさん
23/01/04 18:46:40.14 Edm8Og2O.net
docomoはいいのか
614:デフォルトの名無しさん
23/01/04 18:57:17.14 zEB0n1jD.net
唐突に「NGする」って一体何の話だ???
615:デフォルトの名無しさん
23/01/04 18:58:30.08 zEB0n1jD.net
何かを想定しているなら質問に際して最初にそれを伝えるのが常識だろう
616:デフォルトの名無しさん
23/01/06 10:01:53.18 +4FzrtmN.net
>>598
ありがとうございました。
助かりました
617:デフォルトの名無しさん
23/01/06 10:09:25.96 +4FzrtmN.net
>>597
感謝です!
618:デフォルトの名無しさん
23/01/07 13:40:18.10 0HEuBgBZ.net
JaneStyle等の5ちゃん専ブラのNG設定用に、以下の条件を全て満たす書き方を教えてください。
・1行(改行文字無し)
・半角全角で70文字以上100文字
・文中に「、」または「。」を1文字以上含む
619:デフォルトの名無しさん
23/01/07 14:35:34.78 bXxrhZUn.net
>>605
それはここじゃなくて JaneStyleのスレで聞いた方がよくね?
620:デフォルトの名無しさん
23/01/07 17:50:57.40 IdmDw0D4.net
>>602
うるせーな死ねよハゲ
621:デフォルトの名無しさん
23/01/07 19:04:16.19 B7GL4Qwr.net
JaneStyleでの改行は\s<br>\sか?
実際の対象を見ないと分からないけどたとえばアンカーなんかも無いと分かってるなら
^(?=.*[、。])\s[^<]{70,100}\s$
特定の荒らしか何かを想定しているのかな
622:デフォルトの名無しさん
23/01/07 19:42:28.54 Zoa7JGj4.net
アンカータグは当然あるよ
5chならね
623:デフォルトの名無しさん
23/01/13 18:40:39.04 ZqEJpVNq.net
そういうことじゃないんじゃないか
624:デフォルトの名無しさん
23/01/29 18:48:08.66 cz1zZ3tj.net
>>605
そのままchatgpt で聞いてみたよ
以下の正規表現を使用することで、1行 (改行文字無し)、半角全角で70文字以上100文字、文中に「、」または「。」を1文字以上含む条件を全て満たす文字列を抽出することができます。
ruby
Copy code
^(?=.{70,100}$)(?=.*[、。]).*$
この正規表現は、文字列が70文字以上100文字以下であり、文中に「、」または「。」を1文字以上含むことを保証します。
だってさ
625:デフォルトの名無しさん
23/01/29 21:21:58.64 O+Wk/2Eo.net
近頃はみんな
626:デフォルトの名無しさん
23/01/29 22:30:48.24 9ooogxSi.net
薄くなったね
627:デフォルトの名無しさん
23/01/30 01:55:35.57 GlHcGD1J.net
体裁を整える能力はピカイチだが、それが正しいという保証はないからなあ
ちゃんと使うにはまずその分野の知識が必要というジレンマ
628:デフォルトの名無しさん
23/01/30 17:50:26.15 gh9uKCuR.net
正規表現でガチャを回せる投稿サイトを作った話
URLリンク(zenn.dev)
URLリンク(www.regech.app)
629:デフォルトの名無しさん
23/01/30 21:13:06.03 TI/BqHZQ.net
(?!).+
630:デフォルトの名無しさん
23/02/02 00:14:23.96 fPL322j9.net
顔文字に見える正規表現を考えたい
(;*~_~*)
631:デフォルトの名無しさん
23/02/04 22:54:12.69 DlLJLfae.net
2023-02-04という書式の日付のデータがある時
その行で最初に出てきた-を年にしたい
正規表現でなんて書けばいいですか?
632:デフォルトの名無しさん
23/02/04 22:57:04.23 DlLJLfae.net
検索欄に(^.*?)(-)
置換欄に\1年
633:デフォルトの名無しさん
23/02/05 10:48:30.98 KWvYGjBb.net
-(.*) → 年$1
634:デフォルトの名無しさん
23/02/11 16:20:49.02 fAcJ3wf1.net
●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
635:デフォルトの名無しさん
23/02/11 17:02:21.81 yc790R16.net
^\[[^[]*\n(?=\n)
636:デフォルトの名無しさん
23/02/11 17:47:19.77 4bXfwNL9.net
str.split('\n\n')
637:デフォルトの名無しさん
23/02/11 18:25:52.14 G+Atp5X9.net
空行区切りとは限らない場合、ファイル名に[があるかもしれない場合
str.match(/^\[.*(?:\n(?!\[).*)*\n*/gm)
638:デフォルトの名無しさん
23/02/12 00:39:26.16 mse6QHvr.net
>>622-624
できました。すごい。
639:デフォルトの名無しさん
23/02/12 12:08:20.65 2oU17ty6.net
[424.0] は、つまり、
行頭が[ で、行末が] の場合だけを、特別な命令と解釈するのだろ
640:デフォルトの名無しさん
23/02/12 12:34:59.28 PBDCQhni.net
こういうの非包含が使えたらすごい楽
^\[(?~^\[)
641:デフォルトの名無しさん
23/02/12 23:00:31.59 mse6QHvr.net
>>627
正規表現て複雑な入れ子とかの抜き出しもできることは知ってるけど、
その辺の解説書とかページてないのかね。
642:デフォルトの名無しさん
23/02/14 23:50:28.21 dTCCMwFb.net
JavaScriptの正規表現で質問です
ある正規表現に合致し、ある正規表現に合致しない、という正規表現は可能でしょうか?
具体的には
任意数は0も含むものとして
任意数の大文字アルファベットのあとに、任意数の小文字アルファベットが続き、その後任意数の数字が続く文字列のうち
643: 小文字のみ、数字のみの文字列を除外したいです(大文字のみのものは合致させたい) 合致例 ABab01 AAA0 aaa012 ABCDE 合致させたくない例 abcde 012345 000aaa
644:デフォルトの名無しさん
23/02/14 23:57:34.39 XRqDNj0i.net
宿題ですか?
645:デフォルトの名無しさん
23/02/15 00:01:55.99 GMMfGDKP.net
宿題かどうかで正規表現の書き方は変わりませんよね?
646:デフォルトの名無しさん
23/02/15 00:52:40.53 F/CuEgLN.net
できるけど全部正規表現でやらないほうがメンテしやすいぞ
647:デフォルトの名無しさん
23/02/15 00:54:24.40 GMMfGDKP.net
つまりif文で区切るほうが見やすいということですか?
648:デフォルトの名無しさん
23/02/15 08:47:44.60 p2xlcd9z.net
([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([0-9]+)?
649:デフォルトの名無しさん
23/02/15 10:37:15.75 5uY2Ajym.net
>>634
ありがとうございます
素直に足し算の発想でやればよかったんですね
650:デフォルトの名無しさん
23/02/15 12:54:55.60 q8BaXLdM.net
ABab
651:デフォルトの名無しさん
23/02/15 14:01:59.87 N6Rs6EpM.net
([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([a-z]+)?([0-9]+)?
ですかね
652:デフォルトの名無しさん
23/02/15 14:05:43.89 VU7epY9U.net
[A-Z]+[a-z]*[0-9]*|[a-z]+[0-9]+
653:デフォルトの名無しさん
23/02/15 14:13:41.85 6puQI1n1.net
NG例に000aaaがあるということは
000aaaAA
とかもあるわけだよね
そしてこれは順序が違うからマッチさせたダメってことか?
654:デフォルトの名無しさん
23/02/15 14:30:32.69 u5Kc1xOf.net
^(?!$|[a-z]+$|[0-9]+$)[A-Z]*[a-z]*[0-9]*$
655:デフォルトの名無しさん
23/02/16 22:56:05.33 Tpu7Mxzn.net
正規表現で*ではなく0文字以上n文字以下って指定の仕方どうやるんだっけ
*はセキュリティホールになるから使うなみたいなのをどこかで見たので
656:デフォルトの名無しさん
23/02/16 23:01:53.04 Tpu7Mxzn.net
スマンぐぐったらすぐ出てきたわ
ReDoS攻撃というやつだな
正規表現が標準で使える言語でパターンマッチのタイムアウト設定できるやつってあんのかな
657:デフォルトの名無しさん
23/02/22 02:52:40.50 Lq+l8VAY.net
勉強になった
658:デフォルトの名無しさん
23/02/28 19:25:23.88 LpLAZFFY.net
●Regular Expressionの使用環境
秀丸エディタ
●検索か置換か?
置換
●説明
正規表現で加減算したいです
perlの場合これでできるそうです
検索:columnIndex([\d]+)
置換:columnIndex@{[$1+1]}
●対象データ
columnIndex001 = "aaa";
columnIndex002 = "bbb";
columnIndex003 = "ccc";
●希望する結果
columnIndex002 = "aaa";
columnIndex003 = "bbb";
columnIndex004 = "ccc";
659:デフォルトの名無しさん
23/02/28 21:40:28.89 k7F1eRIt.net
perlの置換の式はただのスクリプトとしての演算だからなあ
無理なんじゃね
660:デフォルトの名無しさん
23/02/28 21:52:42.51 3RvLxpuD.net
俺だったらエクセルに貼って分解して計算して足し込んでcsvに出力する
661:デフォルトの名無しさん
23/02/28 22:16:00.68 HPZ5xkxF.net
秀丸にも専用のスクリプト言語的なのなかったっけ?
それ使えばワンチャンあるが素直に汎用のスクリプト言語使った方が楽かも
662:デフォルトの名無しさん
23/02/28 22:25:04.50 LpLAZFFY.net
そうかありがとう
B2&TEXT(C2+1,"000")&D2な感じでエクセルに計算させます
663:デフォルトの名無しさん
23/03/05 15:30:49.38 kbQORjCn.net
chmateの名前欄ng正規表現について
ここの正規表現は拡張正規表現だよね?
ワッチョイ消しあぼーんは(?<!\))$だけど、この中の\って何?
それと\(ス[プ|ッ]+ Sd(5f|bf)の中の\って何?
正規表現なら\は直後のメタ文字打ち消しだけど拡張正規表現においては何を意味するの?
664:デフォルトの名無しさん
23/03/05 16:48:59.22 zxnSBXGX.net
メタ文字消し
|のことならor
665:デフォルトの名無しさん
23/03/05 17:13:11.22 /VGFBid9.net
今まさに書き込もうとしてた。ググったらchmateのNG表記も標準正規表現なんだな
俺が何で拡張正規表現かと勘違いしたかというと、|は標準正規表現では使えないからLinuxなら-Eをオプションに付けて拡張正規表現にする必要があると習ったから
chmateでは|が使えるけどメタ文字打ち消しのバックスラッシュも使うというのはどういう事なの?
666:デフォルトの名無しさん
23/03/05 22:34:50.68 jasgpIrF.net
>>642
rubyの3.2は出来ます。
URLリンク(www.ruby-lang.org)
Regexpのタイムアウトの導入
667:デフォルトの名無しさん
23/03/25 11:22:38.54 YDfCdrWh.net
/~/という書き方のとき以外でスラッシュ/を\エスケープする必要があるケースはありますか?
668:デフォルトの名無しさん
23/04/17 19:32:17.83 5c7uVWzN.net
「0」と「1」からなる文字列のうち、「0」と「1」を同数含む文字列にマッチする
正規表現は存在しません。
正規表現よりも強力な検索方法で↑の文字列にもマッチさせることができるようなソフトは
存在しますか?
669:デフォルトの名無しさん
23/04/17 19:44:56.00 sl+3Awil.net
python
670:デフォルトの名無しさん
23/04/17 20:33:36.29 waI8rtvz.net
つらい
671:デフォルトの名無しさん
23/04/17 21:06:25.43 z5E2eHg0.net
URLリンク(regex101.com)
672:デフォルトの名無しさん
23/04/17 21:29:53.48 W4QVtvW8.net
JavaScriptで書くかな
673:デフォルトの名無しさん
23/04/17 23:02:23.02 HlIFmrYC.net
正規表現よりも「強力な」検索方法ってどう言う事?
それチェックするだけならBASICだって出来るだろうに
674:デフォルトの名無しさん
23/04/17 23:14:49.47 aBS+jUDM.net
あのさあ
>>657を見た後でそんなこと言ってるの?
>>657の末尾に$をつけりゃチェックできるだろうに
675:デフォルトの名無しさん
23/04/18 00:49:04.02 HEwUJcz7.net
URLリンク(regex101.com)
676:デフォルトの名無しさん
23/04/18 01:55:03.99 0xKKyM+T.net
wwなんじゃこの無意味なやつww
677:デフォルトの名無しさん
23/04/18 01:55:30.29 0xKKyM+T.net
全くチェックできてないやんwww
678:デフォルトの名無しさん
23/04/18 03:16:09.61 +QStg837.net
正規表現だけで頑張りすぎる奴はアホ
679:デフォルトの名無しさん
23/04/18 10:37:46.66 1M+dv0CB.net
> 「0」と「1」を同数含む文字列にマッチする
これが部分文字列も含むのなら最初の「0111011110001100000…」のところだけでも
で01, 10とか01111000, 111000, 1100, 0011とか011101111000110000とか
他にもあるけどまあ沢山あるわな
こんなんチェックして何の意味があるのか知らんけど
680:デフォルトの名無しさん
23/04/18 11:53:15.97 mLPBXdJt.net
>>661のは01以外の文字が存在してるのを失念してるので、少しだけ修正
^([^01]|0[^01]*?(?1)*?1|1[^01]*?(?1)*?0)++$
681:デフォルトの名無しさん
23/04/18 11:55:59.03 mLPBXdJt.net
あ、すまん
>「0」と「1」からなる文字列のうち
を忘れてた
682:デフォルトの名無しさん
23/04/18 12:04:05.08 mLPBXdJt.net
おまけに>>666は冗長だったしね
^([^01]|0(?1)*?1|1(?1)*?0)++$
683:デフォルトの名無しさん
23/04/18 12:07:01.90 y8YzUN5p.net
なぜある範囲の文字列を認識できる正規表現が重用されるのでしょうか?
たとえば、文脈自由文法により生成される文字列を認識できるような検索ソフトは
ないのでしょうか?
684:デフォルトの名無しさん
23/04/18 12:19:50.17 VZPIsbzr.net
何故妙な所でわざわざ改行を入れるのでしょうか?
685:デフォルトの名無しさん
23/04/19 15:37:27.88 DhCp7Dkf.net
たとえばHTMLの<title>の直後だけ判定したいときに
マッチしなかったら長いページの最後まで<title>~を探し続けるの無駄だと思うんだけど
<title>のところだけ見終わったら判定打ち切ることってできる?
686:デフォルトの名無しさん
23/04/19 17:20:57.30 WqdbOhNP.net
URLリンク(regex101.com)
687:デフォルトの名無しさん
23/04/19 18:18:09.16 DhCp7Dkf.net
>>672
ありがとう!
688:デフォルトの名無しさん
23/04/19 22:28:52.49 ndERcjBg.net
>>669
計算量が小さいことが数学的に証明されているから
文脈自由文法は計算量が大きい
689:デフォルトの名無しさん
23/05/10 15:31:44.13 7WScgW4R.net
下記の文字列でナンバリングの重複
690:を除去するにはどうすればいいですか? かまいたちの知らんけど #37 #37 「梅沢富美男とドライブ旅!やりたいこと詰め込んだら喜ぶ、知らんけど」 [GAORA] 2023年05月10日.ts 千鳥の相席食堂 #199 #199 藤岡弘、&藤岡真威人の旅! ’田舎出身&ロケマスター芸人’の千鳥がツッ [スカイA] 2023年05月08日.ts ナンバリングが同一かどうかを考慮しなければ下記で可能かなと思うのですが、 (#[0-9]{1,})[\S\s]*(#[0-9]{1,}) ナンバリングが同一である場合に除去するってことは可能なのでしょうか? ※「正規表現は、.NET Framework で提供される正規表現の全ての機能が使えます」ってヘルプにあります
691:デフォルトの名無しさん
23/05/10 15:43:18.27 7WScgW4R.net
[\S\s]* は 改行を考慮してみただけで何でもよかったので、無視してください。
692:デフォルトの名無しさん
23/05/10 15:49:49.18 XkmajJ+H.net
s/(#\d+ )\1/$1/
693:デフォルトの名無しさん
23/05/10 15:56:15.66 yXmZBCRQ.net
#37 #371
694:デフォルトの名無しさん
23/05/10 16:24:45.76 XkmajJ+H.net
>>678
なんか問題ある?
まあ例は基本形であって\1というものがあるということを教えればいいだけだけどね
695:デフォルトの名無しさん
23/05/10 16:34:36.66 KWVZdtYA.net
誤爆しないかチェックしたかったんでしょ
そんな噛み付か無くても良かろうよ
696:デフォルトの名無しさん
23/05/10 16:44:00.86 7WScgW4R.net
>>677
これでいけそうです、ありがとうございます
\1 の働きが 何か分からないんですが、何て言葉で検索すればいいですか?
697:デフォルトの名無しさん
23/05/10 16:52:01.37 7WScgW4R.net
あ、キャプションってやつですかね。
こうなか?
s/(.*)(#\d+ )\2(.*)/$1 $2 $3/
698:デフォルトの名無しさん
23/05/10 16:52:49.70 7WScgW4R.net
こうかな
699:デフォルトの名無しさん
23/05/10 16:57:22.57 XkmajJ+H.net
前後を不定長にするとバックトラックの量が半端じゃなくなるよ
数千倍数万倍それ以上の場合数にあっという間になるので
どれほど爆発的に増えるか考えてみてくれ
700:デフォルトの名無しさん
23/05/10 17:23:53.71 H/PxYykp.net
正規表現はChatGPTと相性いいなぁ
すげー間違ったことも返されるけど検証もさせられるしやテストケースも生成出来て超便利
701:デフォルトの名無しさん
23/05/10 18:11:00.72 XkmajJ+H.net
>>682
悪い
試したらstep数は全然増えなかったね
俺の勘違いか
702:デフォルトの名無しさん
23/05/18 00:59:59.60 GLOCdhwM.net
ハゲとフサの混在からハゲを排除したい
703:デフォルトの名無しさん
23/05/18 09:45:41.67 HWVU1A6n.net
replace(/ハゲ/g, 'ヅラ')
704:デフォルトの名無しさん
23/05/21 18:08:25.80 T9C8dxe0.net
\Kってどうゆうときに使うんですかね?
705:デフォルトの名無しさん
23/05/22 23:09:40.07 lUHZhpO8.net
安心して下さい\Kはいてますよ
$& = はいてますよ
706:デフォルトの名無しさん
23/05/23 15:16:49.72 5w9lz5Mr.net
そちらにはいてますか
707:デフォルトの名無しさん
23/05/27 21:08:35.92 HxAuQBVD.net
特定の文字列が2回以上なければ削除したい
$aa=~s/hoge// if $aa!~/.+hoge.+hoge.+/;
正規表現一発で出来ませんか
708:デフォルトの名無しさん
23/05/27 22:49:21.84 Jh5M5XKC.net
s/\A(?![\s\S]*(砂沙美魔法少女クラブ)[\s\S]*\1)([\s\S]*)\1([\s\S]*)\z/$2$3/
709:デフォルトの名無しさん
23/05/28 06:07:20.35 exFpSO/0.net
s/(hoge.*hoge)|hoge/$1/
s/hoge.*hoge\K|hoge//
s/hoge.*hoge(*SKIP)(*FAIL)|hoge//
s/(hoge)(.*\1\K)?//
URLリンク(regex101.com)
710:デフォルトの名無しさん
23/05/28 10:23:23.66 fg1fsMga.net
s/みさおちゃん(?:.*みさおちゃん(*COMMIT))?//
711:デフォルトの名無しさん
23/05/28 12:43:42.23 yjwdVP6E.net
説明不足でした
$aa=~s/.+hoge.+\n// if $aa!~/hoge.+hoge/s;
これなぜにかダメです
$aa=~s/(hoge.+hoge)|[^\n]+hoge[^\n]+\n/$1/s;
712:デフォルトの名無しさん
23/05/28 14:47:06.90 6Y81pqVN.net
ダメなのは左のhogeより先に右の[^\n]+hogeがマッチを始めるから
左が先になるように右に合わせる
713:デフォルトの名無しさん
23/05/28 15:02:19.22 yjwdVP6E.net
初歩的でしたね、ありがとうございます
714:デフォルトの名無しさん
23/05/31 00:20:37.60 Dm7F+2f1.net
「-」の無い電話番号に「-」を入れるには?
715:デフォルトの名無しさん
23/05/31 07:23:21.12 X455hjkS.net
国際電話とかあると面戸だね
716:デフォルトの名無しさん
23/05/31 08:55:50.76 t6+qFJ/7.net
>>700
携帯番号以外は不可能じゃないかな
717:デフォルトの名無しさん
23/05/31 18:03:07.79 wXMZ1Y1H.net
区切り位置が変わるから全部羅列するしかないね
それも時々更新する必要がある
718:デフォルトの名無しさん
23/06/02 21:23:49.13 XcfIYH3W.net
>>701
誰か頑張れ
URLリンク(www.soumu.go.jp)
719:デフォルトの名無しさん
23/06/03 16:20:02.62 p6l+hu28.net
固定電話
URLリンク(regex101.com)
720:デフォルトの名無しさん
23/06/03 22:05:33.82 vWJZBL5V.net
愛は行動。言葉だけではダメ
721:デフォルトの名無しさん
23/06/04 00:25:20.56 FmV4cjgS.net
もう冷めました
722:デフォルトの名無しさん
23/06/16 20:08:06.56 BLiKvBT9.net
Perl v5.38.0-RC1
723:デフォルトの名無しさん
23/06/18 00:06:22.30 7IbgNtYk.net
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
724:デフォルトの名無しさん
23/06/18 14:54:23.24 PO9vLDeK.net
>>708
これは色んな意味でおかしい。まず、画像で例示しているURLだがドメインレベルに ? は
使用できない(エラーになる)。正規表現自身もURLということをチェックしていない。最低限、
スキームが https? で始まり、ID=文字列(アルファベット限定)を含む書式の、文字列のみを
抽出するコードを(ここに直接書くとエラーを食らっているので)貼っておく。
URLリンク(pastebin.com)
725:デフォルトの名無しさん
23/06/18 15:04:09.09 PO9vLDeK.net
訂正。>709で貼ったコードは正しく動作するががコメントに(ここに貼った際に試行錯誤した
せいで) ? が抜けていた。趣旨は同じものなので、↓を参照して下さい。
URLリンク(pastebin.com)
726:デフォルトの名無しさん
23/06/18 15:53:25.97 uv5oAAX5.net
>>709
URLの「正しい」ってなんですか
URLリンク(en.wikipedia.org)
URLリンク(datatracker.ietf.org)
727:デフォルトの名無しさん
23/06/18 16:12:09.00 uv5oAAX5.net
「正規表現を用いた文字列抽出の例」図は「誤った正規表現」の例なんじゃないかなあ
例の正規表現では ~.com?fakeID=DEF にもマッチしてしまう
728:デフォルトの名無しさん
23/06/18 16:13:51.73 PO9vLDeK.net
>>711
あなたが示している[1]のsyntax diagram(構文図)[2
729:]にあるように、? は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
730:デフォルトの名無しさん
23/06/19 17:12:20.20 a4eWUm7x.net
>色んな意味でおかしい
同意。本当にこの例をNTTの技術者が作ったの?と思ってしまった。
広報担当の事務員が頑張って作った例だと言われたら納得出来るw
731:デフォルトの名無しさん
23/06/20 13:11:10.13 AvErps2d.net
これは、>>712の人も言ってるように「悪い見本」か、あるいは「プレスリリース用にめっちゃ簡略化した例」のどちらかかと思う
個人的には悪い見本の方かと思う
「?」と「ID」の間のスペースとか気持ち悪いし
732:デフォルトの名無しさん
23/06/21 01:04:22.29 LPKmcd4s.net
メールアドレスは誤ったアドレスを発行して運用してるところがあると対応せにゃ仕方ないけど
URLは誰もアクセスできないだけで終わるんだろうな
733:デフォルトの名無しさん
23/06/21 02:01:06.48 FL3bkV8O.net
質問
ある文字列の中に、4桁の数字が出た場合、文字列を区切るという目的で正規表現を使いたいです
let hoge="....";
hoge.split(/\d{4}/)
しかし上記の正規表現だと、例えば6桁の数字でも区切ってしまうため、これを4桁に限定するためにはどうしたらよいでしょうか?
734:デフォルトの名無しさん
23/06/21 02:36:29.87 HRXsYHZK.net
(?<!\d)\d{4}(?!\d)
735:デフォルトの名無しさん
23/06/21 06:20:04.42 FL3bkV8O.net
ありがとうございます
736:デフォルトの名無しさん
23/06/21 07:00:29.04 8S43aXN3.net
修正前 .*(..)?
修正後 .*?(.[^z])?
"abcd"を与えて受理される文字列
修正前 ""
修正後 "ab"
受理してもらいたかった文字列 "cd"
URLからIDを取り出すほうは画像に入るようにデフォルメする必要があるから
おかしいURLになるのはやむを得ないと思う
> (?:[&].*)?
ただこれはちょっと気持ち悪い
これがあっても無くても結果は変わらないから付ける必要なかった
正規表現に詳しい人が"&"を単体で文字クラスに入れることはあまりない(たまにはいる)
新技術のアプリを実際に試させてくれないかな?
提供してもらえれば無償でテストするよ
737:デフォルトの名無しさん
23/06/21 07:17:00.34 Z+I+bAqU.net
「abczは拒否」→「なるほど末尾zは拒否だな」
えー…
738:デフォルトの名無しさん
23/06/21 07:38:48.98 SbeXWTV7.net
書いてないけど前提として完全一致のつもりだったんだろうな
739:デフォルトの名無しさん
23/06/21 10:41:38.55 8S43aXN3.net
jsって完全一致が前提になるオプションってある?
それがあったとしても .*?(.[^z])? はAutoだが
740:デフォルトの名無しさん
23/06/21 11:16:26.32 ld9dVlA3.net
>>723
シングルラインモード(dotAll)で ^ と $ を使えば良いだけでは?
741:デフォルトの名無しさん
23/06/21 12:14:35.15 8S43aXN3.net
^と$を使うつもりなら画像の中でも使うと思う
見やすくするために省いてるだけなのかな?
そうだとしても .*?(.[^z])? はAutoだが
742:デフォルトの名無しさん
23/06/21 22:34:06.87 g2ig9yOY.net
ニュー速(嫌儲)で、近頃半角記号を6文字だけとかの書き込みがあります
なんとかNGを作りたいのですがうまく行きません
行頭から記号だけの文字列で4~8文字、って想定でこんなの作ってみたんですが、httpで始まるurlも引っかけてしまいます
^[ -/:-@\[-~]{4,8}
例えばこんなスレなんですが
スレリンク(poverty板)
詳しい方、正規表現作ってもらえないでしょうか?
743:デフォルトの名無しさん
23/06/22 09:30:57.52 nJDgsm3N.net
そういうのは専ブラのNGスレでやるべきだね、ユーザー同士で情報共有にもなるから
正規表現を適用する対象がHTMLでなくdatだったりでユーザーでないと作れない場合もある
記号だけにマッチさせたいなら[!-/:-@\[-`{-~]だが、この前後に付ける正規表現は
お使いの専ブラスレで聞いてくれ
744:デフォルトの名無しさん
23/06/22 09:42:44.65 TTIYA8nl.net
そこみる限りでは3パターンしかなくない?
何かしらの絵文字とかが化けて出てるだけとか。
(\$\@\:\^\()|(\_\]\#\)\&\$\}\>)|(\!\^\*\%\&\$\:\~)
745:デフォルトの名無しさん
23/06/22 10:08:56.55 L6AKAbfA.net
726です
726のこれはうまく動かない、と書いたのは、文字間にスペース入ってました
727さんのに変えたら誤動作無く動作しました
^[!-/:-@\[-`{-~]{5,11}
ちなみに、android板に以下のスレを発見しました
しかし、荒らされてて機能して無さそう
他にこっちの方が良いよ、っておすすめのスレはありますかね?
オススメのNGワード
スレリンク(android板)
746:デフォルトの名無しさん
23/06/22 10:55:55.92 nJDgsm3N.net
こちらはそちらが何を使ってるかも分からないので勧めようが無い件
問題は正規表現の後ろに付けるほうなんだけど何を使ってるかで変わると思う
今のままでは12文字以上記号が続いててもNGになっちゃうね
747:デフォルトの名無しさん
23/06/22 13:11:08.52 L6AKAbfA.net
>>730
chmateなんです
その後、2文字だけのにも対応するためこうなりました。言われた通り後ろ側も条件付けました
^[!-/:-@\[-`{-~]{2,11}$
ここがひどいです
スレリンク(poverty板)
748:デフォルトの名無しさん
23/06/22 14:46:12.28 vRMLRvgd.net
方言がひどい記述だけど(PCRE2とbregonig.dllでは大丈夫)
^ ?(((?!&gt;?|&lt;?)[[:punct:]])+|&gt;?|&lt;?){2,} ?$
749:デフォルトの名無しさん
23/06/22 14:53:40.61 vRMLRvgd.net
>>732
はdatに対してのものだから、mateはどうなのかは知らん
POSIX文字クラスが通っても、>とか行頭行末の半角スペースとか無さそうだね
750:デフォルトの名無しさん
23/06/22 23:53:09.33 nJDgsm3N.net
GJ
[[:punct:]] これいいね、覚えとこ
(()+){2,}は繰り返しが二重になっててReDosを狙われる懸念があるから
++や(?>)を使ったほうがいいかも
正規表現エンジンの内部でも対策はしてると思うけど念のために
751:デフォルトの名無しさん
23/06/23 01:33:06.45 gmkpJif8.net
>>734
+が入ってるのはダメじゃん
除いてくれ
作ってる途中で紛れ込んだものだね
なおbregonig.dllだと
^ ?(?:\p{punct}|&gt;?|&lt;?){4,} ?$
^ ?(?:[[:punct:]]|&gt;?|&lt;?){4,} ?$
でもいけちゃうんだよな
ちょっと不思議
752:デフォルトの名無しさん
23/06/23 02:02:21.28 qwakAXsj.net
and検索みたいなのってできない?
今まで[ABC]と[あいう]は2回に分けて検索してたけど1回で済ませたい
753:デフォルトの名無しさん
23/06/23 02:09:08.88 gmkpJif8.net
>>736
^(?=.*?ABC)(?=.*?あいう)(?=.*?甲乙丙)
754:デフォルトの名無しさん
23/06/23 02:35:28.92 qwakAXsj.net
>>737
感謝
755:デフォルトの名無しさん
23/06/23 12:02:08.17 2Ntzjt3B.net
[文章]
AAAaiueo111 xxx
aaaaa
AAAkakikukeko xxx
b b b
AAAsasisuseso
ccccc
AAAtatituteto000
ddd123
上記の文章で先頭がAAAの行だけ抜き出して、さらに
756:AAAを削除して末尾にxxxがある場合はxxxも削除する正規表現を考えています。 使用するのはサクラエディタの置換機能で、 置換前 AAA(.*)\r |.*\r\n 置換後 $1 で実行するとAAAの行だけ抜き出してAAAも削除出来ましたがxxxが残ります。2回に分けて置換すればいいのですが、面倒なので1回でxxxまで削除する方法があれば教えてください。
757:デフォルトの名無しさん
23/06/23 13:06:42.48 gnUd2/2c.net
AAAで始まらない1行|先頭のAAA|末尾のxxx
758:デフォルトの名無しさん
23/06/23 13:54:57.82 WBrlaKRC.net
^AAA|xxx$|^.*\r\n → 削除
759:デフォルトの名無しさん
23/06/23 15:20:23.65 2Ntzjt3B.net
>>740
>>741
ありがとうございます。
760:デフォルトの名無しさん
23/06/23 19:05:48.89 zWmLGOhD.net
^AAA([^\r\n]*?)(?:xxx)?$|^[^\r\n]*(?:\r\n|[\r\n])?
$1
アク菌で書けませんぞテスト
761:734
23/06/23 19:21:25.94 zWmLGOhD.net
>>735
PCRE2では\p{Punct}は存在しないんだね
www.pcre.org/current/doc/html/pcre2syntax.html
[\p{P}\p{S}]で代用になりそう、全角文字にもマッチするけど
プロパティがこれだけいろいろあると全部を把握するだけでも大変だなぁ
> +
言われてみれば+があるのはおかしいw 忘れ物だったのかw
762:デフォルトの名無しさん
23/06/23 21:34:05.58 gmkpJif8.net
>>744
不思議な点は
PCRE2だと、[[:punct:]]で&が先にキャッチされて&gt;のgt;が取り残されてしまうので
|&gt;とあってもマッチしなくなる
bregonig.dllだと
&gt;にキャッチされてマッチする(punctより&gt;が優先される
(PCRE2は最短マッチが優先されて、bregonigは最長マッチが優先なのか?)
これはorの記述の順序には関係なく左に(先に)&gt;を書いても結果は同じ
763:デフォルトの名無しさん
23/06/23 22:07:00.56 zWmLGOhD.net
ここのテストサイトで regex101.com/
^([[:punct:]]|>|<)$ を < にマッチさせたら成功したけど
本物のPCRE2ではマッチしないの?余計な半角スペースが入ってたりしない?
それで>>732に要らないはずの先読みを入れてたんだね
これがマッチしないならバグかも知れない
もしまたゴミとかのうっかりミスが原因だったとしても気にしないでね、俺もよくやらかすから
764:デフォルトの名無しさん
23/06/23 22:09:21.21 zWmLGOhD.net
あ、&が化けちゃった
^([[:punct:]]|>|<)$ を > にマッチさせて
765:デフォルトの名無しさん
23/06/23 22:31:35.63 gmkpJif8.net
>>746
今確認したらそのとおりだった
俺は以前一体何をやったんだろう?
766:デフォルトの名無しさん
23/06/23 22:36:28.09 gmkpJif8.net
今考え付くのは
^(?>[[:punct:]]|&gt;)+
とか
&gt;のみ書いといて&lt;に引っ掛かったとかとかかなあ?
767:デフォルトの名無しさん
23/06/23 22:47:37.55 gmkpJif8.net
さすがに(?>)を使って気づかないわけないから(使った覚えもないし)
恥ずかしいけど、gt;とlt;の取り違えをやらかした気がする
768:デフォルトの名無しさん
23/06/23 23:16:11.04 zWmLGOhD.net
そういうこと俺もあるから分かるわーw
頭が回ってないときに動作確認するとしっかり確認出来てないのに確認したつもりに
なってしまうんだよなぁ、だから休憩と二重三重の確認はめちゃ大事
間違えた原因は分からないけどとりあえずゆっくり休んでくれw
769:デフォルトの名無しさん
23/06/24 00:27:07.24 X4q59utv.net
勘違いした理由が分かった
^([[:punct:]]|&gt;)+
これをやると&で切れちゃうんだ
s/([[:punct:]]|&gt;)+//g
をやるとgtが置換されずに残る
末尾に$とか目標物を付ければ切れないんだが
さてどうして切れるのか誰か教えて
770:デフォルトの名無しさん
23/06/24 00:36:09.10 X4q59utv.net
やっぱ左側が優先なのか
(&gt;|[[:punct:]])
と入れ替えたら切れない
771:デフォルトの名無しさん
23/06/24 09:56:18.97 o3ZfF1Sp.net
>>742 >>741
それだと行頭からxxxだけしかない行の改行が削除できずに残りそうだけどどうだろう
^AAA|^.*\r\n|xxx$ → 削除
772:751
23/06/24 11:05:23.89 QPqcCtG1.net
>やっぱ左側が優先なのか
正解
ただ、同じ正規表現で&;gt;にマッチする環境もあるよ
考えられる中で最長になるマッチを探すエンジン
バックトラックの動きがまだよく分かってないなら>>708のNTTと早大の正規表現や
>>743で使ってる .* と .*? の動きも見直しておいたほうがいいかも
見た目は簡単そうに見えるけど正しくバックトラックの動きを理解してないと作れない
舐めてかかると酷い目に遭う怖いヤツだよ(過去に経験あり)
773:デフォルトの名無しさん
23/06/24 11:10:05.28 QPqcCtG1.net
あ、NTTと早大のやつは正規表現を^と$で囲ってから動かして
774:デフォルトの名無しさん
23/06/24 11:21:09.38 X4q59utv.net
>>755
いままで
+や++での強欲のバックトラックが最長を探すのに違いがあるとは思っていなかったよ
最大の最長を探す記述ってのも欲しいな
775:デフォルトの名無しさん
23/06/24 16:54:14.04 QPqcCtG1.net
>最大の最長を探す記述
ちょっと探してみたらPHPのオプションにあった
www.php.net/manual/ja/function.mb-regex-set-options.php
> l 最も長くマッチするものを探す
この処理ってすごく重くなりそうなイメージがあったけどそうでもないのかな
776:デフォルトの名無しさん
23/06/24 17:35:54.33 X4q59utv.net
PHPだけじゃなあ
結局、事故らない為には長さの違うダブリは取り除いておくほうが無難ってことか
777:743
23/06/25 11:57:31.39 YeZqv3UB.net
>> 759
考えてみると長いほうを前にしても短いほうがマッチ出来なくて詰むケースがあるのか
正規表現むずかしい
>> 740 741 754
改行コードがLFやCRのみの場合に対応してない
最後の行がAAAで始まらない場合、行末の改行が無い場合に削除されない
743は両方に対応しているけど740の発想のほうがシンプルで優れてるね
あとサクラエディタでは\Rが使えるので使ったほうが簡単に書けそう
778:デフォルトの名無しさん
23/06/27 21:16:47.75 TnfGmDZI.net
最長一致マッチが有効のとき、下の正規表現は何にマッチすべき?
"abcd" =~ /abc\Kd|abc/;
\Kの前を文字列長に含めるべきか否かを考えて下さい
779:デフォルトの名無しさん
23/06/28 12:49:16.44 vk3PbjZ1.net
元より最左ルールに基づいてdよりabcにマッチすべきとはならんやろ
780:761
23/06/28 13:05:55.77 m0cBggZC.net
>>762
ありがとうございます、それは正しい意見だと思います
\Kの前を文字列長に含めるべきかどうかについてはどうお考えですか?
今後の参考にしたいと考えております
781:デフォルトの名無しさん
23/06/29 11:57:49.56 0JMnG4u5.net
最長一致する正規表現が有効の場合
1、「abc」「あ」
2、「て゛」「で」
A. 前が長い
B. 同じ長さ
C. 後ろが長い
782:デフォルトの名無しさん
23/07/02 20:25:06.40 /BVUs+ug.net
奥が深すぎる
783:デフォルトの名無しさん
23/07/06 13:17:43.04 GbtWdAMV.net
twitter.com/k_takata/status/1676247372731662336
>正規表現技術入門が第2刷増刷
おめでとうございます
bregonig.dllやonigmoにはいつもお世話になってます
vimは知りませんw
784:デフォルトの名無しさん
23/07/06 17:43:12.24 SQbV6Whm.net
JaneStyleであぼーんにつかいたいのですが、
アウアウウー Sa47-runv [106.131.26.222]
47
runv
131.26.222
この3つが変わる場合の正規表現ってどうかいたらよいでしょうか?
785:デフォルトの名無しさん
23/07/06 20:37:36.61 GbtWdAMV.net
Jane Styleの仕様が分からないけどこれでいける?
(?i)アウアウウー\s*Sa[a-z\d]{2}-[a-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
786:デフォルトの名無しさん
23/07/06 21:30:05.44 7Yxy824T.net
>>768
ありがとうございます!
ためしてみたけれど駄目でした。
細かく分析して応用してみます!!
787:デフォルトの名無しさん
23/07/06 21:54:51.51 7Yxy824T.net
>>768
失礼しました。勘違いをしていて、正しく設定したらこれでいけました!!
大感謝です!&正規表現の勉強になりました!!
リファレンスみてなるほどとうなっています
788:デフォルトの名無しさん
23/07/06 21:55:53.42 gWNyo9yQ.net
いやそれでいけるでしょ
(?i)はデフォなので要らないけど
ダメなら設定の仕方が悪いか、既に表示されているものにNGを設定したんで
設定前の表示が表示されたままで再描画をやってないのでNGが表示に反映されてないかのどっちか
789:デフォルトの名無しさん
23/07/06 22:11:26.50 GbtWdAMV.net
動いて良かった、正規表現の勉強頑張れーw
771さんもありがとう
790:デフォルトの名無しさん
23/07/06 22:11:33.07 4RAXuAwI.net
ちなみにワッチョイの下4桁、runvの部分は大文字もありうるから
その正規表現すり抜けするかも
791:デフォルトの名無しさん
23/07/06 22:16:17.63 gWNyo9yQ.net
(?i)が付いてるし、なくてもそれがデフォだから大丈夫だよ
792:デフォルトの名無しさん
23/07/06 22:21:43.88 7Yxy824T.net
>>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}\]
一応、ご指摘通り改良しておきました!
793:デフォルトの名無しさん
23/07/07 00:41:55.61 adSx9MnJ.net
反対に(?i)ではSaの他にsAにもマッチしてしまうのでは?
(?-i)アウアウウー Sa..-.... \[106\.
これで誤爆する実例があるなら教えてほしい
794:デフォルトの名無しさん
23/07/07 13:06:44.76 xew4KSRK.net
言い方があれだけど、丁寧に書いたかどうかの差なのでどっちでも機能すると思う
795:デフォルトの名無しさん
23/07/07 23:28:01.04 chPidFQv.net
鬼車で(?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も共存不可でした
796:デフォルトの名無しさん
23/07/09 12:38:44.00 dnLGUnq0.net
>>778
"\g<0>" に取り込むときにはそのまま全て取り入れ、取り出すときに
"L" や "C" や "I" を取り除く方法もあるのでは?
797:デフォルトの名無しさん
23/07/09 15:02:36.24 NT/2XwNR.net
最長マッチ(?L)を知らなかったんだけど何か思ってたのと全然違った
DFA的な最長だと思ってたのに
798:デフォルトの名無しさん
23/07/09 17:56:55.84 dnLGUnq0.net
最左じゃなくても良いみたい
UTF-8のとき
abc < abc\Kd
ab < あ
で < て゛
"(?C)a(b|\g<0>)c" がエラーになるのはモヤっとする
"(?C)" が捕獲無効にするから "\g<1>" は使えないし
799:デフォルトの名無しさん
23/07/10 13:05:06.30 8apozFwM.net
> ab < あ
マルチバイト文字を含む文字列に対して (?L) は使いにくいな
文字単位での長さで比較するようにするのは重くなる上に難易度高そう
800:デフォルトの名無しさん
23/07/10 20:06:05.30 8apozFwM.net
JaneStyleが5ch.netのサポートを終了
この前NG登録出来て喜んでた人かわいそす
801:デフォルトの名無しさん
23/07/11 10:50:26.27 6DaZenCz.net
(?L)をマルチ文字対応にするのは無理だけど
>"(?C)a(b|\g<0>)c" がエラーになる
これを使えるように出来る人はいるんじゃないかな
夏休みで暇を持て余している大学生の皆さん、Let's try!
802:デフォルトの名無しさん
23/07/13 19:11:50.96 7AgmN8D3.net
JAPANを日本、NIPPONをニッポンに、同時に置き換える
JAPAN|NIPPON
↓
日本|ニッポン
803:デフォルトの名無しさん
23/07/13 23:55:44.94 OlRmyaph.net
>>785
サクラエディタ+bregonig.dllでは無理っす
804:デフォルトの名無しさん
23/07/14 00:50:54.69 JHf9vJmP.net
URLリンク(www.regular-expressions.info)
URLリンク(npp-user-manual.org)
805:デフォルトの名無しさん
23/07/14 13:30:40.79 lxqistQI.net
わしは鬼車のscan.cをいじって好きに置換出来るようにしたぞ。ファイルからhtmlソースを読み込んで繰り返し検索・置換して結果を別ファイルに出力するようにしとる。便利なのだが使う機会は滅多にない。日常の置換はほぼ秀丸で事足りる。