X



正規表現道場 Part2
0001nobodyさん垢版2012/09/19(水) 18:58:43.51ID:bdgNsY2f
【正規表現道場の掟】

・言語不問

・質問も大歓迎。使用言語を書くのを忘れずに。

正規表現と関係ない話・質問は他スレへどうぞ。

前スレ
正規表現道場
http://kohada.2ch.net/test/read.cgi/php/1168450843/
0343nobodyさん垢版2018/10/18(木) 16:57:45.42ID:ks7bneBP
自分に対して「ガイジ」って言ってくる奴をNGみたいなの出来る?
0344nobodyさん垢版2018/10/18(木) 17:27:56.89ID:???
無理だと思う。どのレス番が自分なのか予め分かってる必要があるけどそれが難しいんじゃないかな。
0345nobodyさん垢版2018/10/19(金) 07:53:00.28ID:???
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
0346nobodyさん垢版2018/10/20(土) 10:38:55.21ID:Isa88TJv
perlをphp化しようとしています。
perlの$`や$'のようなマッチの前後の文字列を取り出すことはできますか?
また、tr/A-Z/A-Z/のような変換は、変換則をいちいち配列で指定しないとできないのでしょうか。
0347nobodyさん垢版2018/10/20(土) 12:59:24.05ID:???
>>346
後者は正規表現じゃなくてmb_convert_kanaじゃあかんの?
0348nobodyさん垢版2018/10/22(月) 04:46:36.26ID:F6qPDtGA
スレ内のランダムで3回以上繰り返される同一の文章をNGできますか?
0349nobodyさん垢版2018/10/22(月) 05:47:20.33ID:F6qPDtGA
細かく説明するとスクリプトコピペ荒らしのコピペ内容が一定期間で変わってしまうというので困っています

V2Cの正規表現で似たもの見つけましたが、janeでは使えませんでした。
(?:^|\n)(.{5,}\n(.*\n){0,2})\1{3}
0350nobodyさん垢版2018/10/22(月) 06:55:08.17ID:???
Janeはdatは取得したそのままで何も加工しないので
改行は\nではなくて<br>となる
また、各行の先頭と末尾に半角空白が付加されている
実際にレスがどうなっているのかはdatを覗いてみるのが一番
0351nobodyさん垢版2018/10/24(水) 08:06:13.02ID:???
JavaScriptで
<table class="aaa" border="1" xxx="yyy" ...(略)>
これを
.replace( /class="(S+)"/g, '.$1' )
で、
<table .aaa border="1" ....>
の形にすることができました。

今度は
<table class="aaa bbb ccc (略)" border="1" xxx="yyy" ...(略)>
これを、border以降を巻き込むことなく
<table .aaa .bbb .ccc (略) border="1" ...>
の形にしたいのですが、どうすればよいでしょうか…?
「=」を含まないようにすればいいんだとは思いますが、なんだかごちゃごちゃするばかりでうまくいきませんでした。
0352351垢版2018/10/25(木) 00:42:51.39ID:???
その後色々試して見た結果
replace( /class=["\s]((.+)+)"/g, '.$1' )
とすることで
<table .aaa bbb ccc (略) border="1" ...>
の形にすることができました。

しかし、.aaa .bbb .ccc のように繰り返して「.」を付加する方法がわかりません。
おとなしく2回に分けて置換するほかないのでしょうか?

replace( /class="(.+\s)?(.+)(\s.+)?"/g, '.$2' )
…これだと1回しか置換できませんね…
0353nobodyさん垢版2018/10/25(木) 14:19:15.03ID:???
すいません質問させてください
専ブラアプリのchmateで連続投稿、連レスをNGに出来ませんか?
連続でなくても、同一IDで沢山書き込んでいるのをNGにしたいのです
毎日NGIDとして登録すれば済む話しなんですが‥
正規表現で一定数以上の書き込みをNGにしたいのです
よろしくお願いします
0354nobodyさん垢版2018/10/30(火) 16:07:23.36ID:???
「あいう
えお」
『かきくけ
こ』

のような場合に改行を詰めたいのですが

^[」』](\r?\n)

を置換して消そうとしてもうまくいきませんでした
どうすれば詰めることができるでしょうか

(使用環境はAutoHotkeyです)
0355nobodyさん垢版2018/10/30(火) 16:53:51.94ID:???
>>354
違ってたらごめんだけど、^の後に何がきても的な指定が足りてないんちゃう?

行頭、ほにゃらら、」または』、改行

とするのがいいんじゃないかなぁと。
0356354垢版2018/10/30(火) 18:03:23.40ID:???
>>355
あ、^は行頭ではなく、[]内の否定でした…

」や』で終わってたらOK(置換しない)
」や』以外で終わってたら、改行コードを削除して詰める
という感じです

^(.+)[^」』]\r?\n

なんか違いますね…
試しにこれでやってみると

「あいう」
『えお』
「かきく
けこ」



「あいう」『えお』
「かきく
けこ」

になるので逆っぽい…
どうも[^]による否定ができていない気がします
一応、AutoHotKeyの正規表現でも[^]による否定はできるはずなんですけど
0358nobodyさん垢版2018/11/25(日) 15:27:10.04ID:TICRp/KJ
教えて下さい。
!と!に該当させたいけれど、!?と!?の場合は除外したい場合、
どのような正規表現になるでしょうか。
0363nobodyさん垢版2018/12/31(月) 08:50:07.88ID:???
アドレスを編集しているんですけど
:80だけ消してたとえば:8001,:6080とか
80が含まれる数字は残したいんですけどどうやればいいんでしょうか
さくらエディターつかってます
0364nobodyさん垢版2019/01/14(月) 16:34:17.89ID:???
PHPで改行以外の制御文字を空文字に置換したいと思い次のように書きました。

preg_replace( '/(?!\n)[\p{Cc}]/u' , '' , $ver );

この場合、否定先読みで\nを指定しているのですが、\rも指定した方が良いのでしょうか。
詳しい方、アドバイスをください。
よろしくお願いします。
0365nobodyさん垢版2019/01/27(日) 18:09:07.98ID:???
そういえば\Rは\rや\nにマッチするって見かけたけど、間にある垂直タブや書式送りにもマッチするよな
0366nobodyさん垢版2019/03/24(日) 10:07:25.65ID:???
鬼太郎実況スレに現れる軍オタ荒しはどうNGすればいいんでしょうか

荒らす個々の文が違うのでやってもやっても消えません
0367nobodyさん垢版2019/07/07(日) 22:05:47.87ID:???
GreasemonkeyのスクリプトでニコニコのコメントをNGにするため
正規表現がうまく適用できなくて

任意の文字列が4字以上連続
.{4,}

スクリプトのほうの問題ならあきらめます
0369nobodyさん垢版2020/09/08(火) 14:42:32.02ID:???
「任意の一文字と複数のスペース」を3回以上繰り返す文に合致する正規表現

(.[[:blank:]]{2}){3}

で↓の文にヒットしてくれないんだけど理由分かる方いる?

や    め    ろ    ー    !    し    ゅ    ー    く    ん    の    が

画像のように他の文にはヒットしている
https://i.imgur.com/mMhnds9.jpg
0371nobodyさん垢版2020/09/11(金) 13:31:39.28ID:???
>>370
ありがとう
{2}を{2,}にしろってことだよね

上手く動きました!
0372nobodyさん垢版2020/10/04(日) 12:23:49.19ID:EyprqV7h
phpで掲示板を作っていてアンカーリンク作りたいと思い以下のように書きました

preg_replace("/>>([0-9]+)/","<a href=\"?res=\\1\"> >>\\1</a>",$text);
>>1など単発の場合は↑でできましたが、>>1,2,3や>>1,2,3,10-15とやりたい場合どうしたら良いですか?
0373nobodyさん垢版2020/11/12(木) 11:55:47.68ID:???
5ch閲覧にrep2を利用しています。
文末に「>>1」が入っているレスを正規表現を利用してあぼーんしようとしました。
rep2だと行末に半角スペースが入るために
>>1)\s$としたのですがうまくいきません。因みに「>>1」を他の日本語に変更すれば
期待通りの結果は得られるのですが。どの表に表現すれば良いのか教えて頂けないでしょうか。
0374373垢版2020/11/26(木) 00:00:02.41ID:???
上の質問をしたものです。
&gt;&gt;1<\/a>\s$ を半角で記述すれば目的を達成することができました。
お目汚し失礼しました。
0375nobodyさん垢版2021/06/01(火) 18:25:38.30ID:???
chmateのNG設定で

複数のワードを全て含む書き込みをNG (?s:^(?=.*ワード1)(?=.*ワード2)(?=.*ワード3))

の ?s:^ と?=はどういう意味ですか?
0376nobodyさん垢版2021/10/20(水) 09:13:32.70ID:???
>>375
超いまさらだけど一応

?s:^は文章全体から検索するよって意味

?=は、ワードを含む(検索する時にマッチする)って意味

(?=あいう)だったら「あいう」があるレスがマッチする
0377nobodyさん垢版2021/11/03(水) 20:06:54.60ID:???
# h1
## h2

これにマッチする正規表現はどう書けばいいんでしょうか?
# h1にマッチさせたい場合、以下のようにしましたが、h2にもマッチします

# .*

h1のみ、h2のみにマッチさせる書き方はどうしたらいいのでしょうか
0379nobodyさん垢版2021/11/18(木) 22:44:23.00ID:LOXmgaYk
お.んこ
0380nobodyさん垢版2021/12/21(火) 17:54:59.04ID:ha2uCzxO
PLAN
PLAN2
PLAN3
PLAN4

以上の4つを表す正規表現についてですが

^PLA(N|N[2-4])

で合ってますか?
0381nobodyさん垢版2021/12/21(火) 19:18:54.23ID:???
>>380
合ってるけど
^PLAN[2-4]?
でいいんじゃないか
0382nobodyさん垢版2021/12/21(火) 19:21:03.74ID:???
ところで、後ろはどうするんだ
PLAN5
とかでもPLANにマッチするけどいいのか
0383nobodyさん垢版2022/04/20(水) 03:42:46.79ID:???
スマホのブラウザ(Berry browser)での検索結果にでたYouTubeのリンクを
NEWPIPEで開くようにする正規表現をおしえていただけませんか?
0384nobodyさん垢版2022/08/03(水) 23:16:32.32ID:1IP0HnLs
正規表現ってこういうのも出来ますか?

  あ い う え お

が「順不同」で「全て含まれている」のを検出

(1) ヒット例
ーーーーあいうえおーーーー
ーおーえーうーいーあーー
ーーーおあーーいいええーーう

(2) スルー例
ーあいうえーーーーー
ーおういあーーーーー

みたいなの1行の正規表現出来ますか?
0386nobodyさん垢版2022/08/04(木) 01:48:18.36ID:1CNBnxTN
>>385
やり方教えて!
0387nobodyさん垢版2022/08/04(木) 14:27:12.75ID:???
複数文字列のANDの基本
^(?=.*文字列1)(?=.*文字列2)(?=.*文字列3)・・・
0388nobodyさん垢版2022/08/04(木) 16:32:56.29ID:1CNBnxTN
これで行けました >>375
ありがとうございます
0389nobodyさん垢版2023/01/08(日) 22:01:02.48ID:???
^.{0,20}$
20文字以下の短文をNGにしたいんですけどアンカーが付いてるとスルーされてしまいます
どうやって改善したら良いですか?
0390nobodyさん垢版2023/07/06(木) 23:30:11.65ID:???
5ちゃんのスレでid無しだけを表示したいのですが
0391nobodyさん垢版2023/10/27(金) 13:16:07.99ID:???
基礎的なことですみません、一応調べてはみたのですが
JavaScriptで改行コードを消す場合

str.replace(/\r\n|\n|\r/g, '')

は理解できますが

str.replace(/[\r\n]/g, '')

ではだめでしょうか?
0392nobodyさん垢版2023/10/29(日) 19:52:21.37ID:CfvUCDSw
age
0393nobodyさん垢版2023/11/24(金) 17:30:39.48ID:???
ChMateのNG機能で、レス本文に順不同で含まれる "あ" に5回マッチさせる際の書き方を教えていただきたいのです

こんな↓感じの毎回微妙に違う意味のないレスをポイしたいのです
うあいうえああえあかあたま
レスを投稿する


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