twinkle for iOS 正規表現専用 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
twinkleの正規表現のテストや正規表現に関する質問など
前スレ
twinkle for iOS 正規表現専用(実質2スレ目)
http://karma.2ch.net/test/read.cgi/ios/1447593710/ >>150
5
●本文に特定の文字列が含まれる、含まれない
(?#1行にA,Bが含まれる)(?=.*A)(?=.*B)
(?#複数行にA,Bが含まれる)(?=[\s\S]*A)(?=[\s\S]*B) >>151
こういう認識で合ってますか?
(?#1行にA,Bが含まれる)(?=.*A)(?=.*B)
○○○○○ワード1○○○○○○ワード2○
○○○○○○○○○○○○○○○○○○○○
(?#複数行にA,Bが含まれる)(?=[\s\S]*A)(?=[\s\S]*B)
○○○○○○○ワード1○○○○○○○○○
○○○○○○○○○○○ワード2○○○○○
A=ワード1
B=ワード2 >>5
(?#複数行にAが含まれBが含まれない)^(?=.*A)(?!.*B).*$
ではなく
(複数行にAが含まれB又はCが含まれない
のやり方教えていただけませんか >>155
(?#複数行にAが含まれBが含まれない)^(?=.*A)(?!.*(?:B|C)).*$ >>153
[>>]{2}1
大文字を含めなければ正規表現なしでいける
>>155
Bを(B|C)にする >>5の確認なんですが
(?#複数行にAが含まれBが含まれない)^(?=.*A)(?!.*B).*$
についてですが
^(?=.*ワードA)(?!.*ワードB).*$
でNGに登録すると
○○○○ワードA○○○○
○○○○○○○○○○ NGされる
○○○ワードA○○○○○
ワードB○○○○○○○○ NGされない
○○○ワードA○○○○○
○○○○○○ワードC○○ NGされる
○○ワードA○○ワードB○
ワードA○○ワードC○○○ NGされない
で合ってますか? >>161
合ってる
ちなみにその正規表現はAB(C)の順序は関係なく働く >>162
ありがとうございます
実際にNGしてみたんですけど
なぜか消えないものと消えるものがあったので
困ってました 原因がわかりませんが他の方法でNGして妥協しました >>161
処理系がtwinkleではないしそもそもiOSでもないが同様目的には以下を使っている
(?s:^(?=.*(?:ワードA))(?!.*(?:ワードB))) 下の2つの条件を満たす正規表現の方法を教えて欲しいです。おねがいします
条件1
(ワードA)の後に続く最初の文字が
「の、み、ち)」はNGされない(それ以外の文字はNGされる)
条件2
(ワードA)の後の文字が「の」の場合でもそのレスに(ワードB)が含まれていない場合はNGされる
※(ワードB)が含まれていても(ワードAの後の文字が「の」以外の時はNGされる)
例
ワードA=明日
ワードB=予定
とする
【NGされないパターン】
明日の
明日みんなで
明日ちゃんと
明日の予定は
【NGされるパターン】
明日は
明日で
明日も
明日も予定は >>164
うわ!ありがとうございます!
>>163
の問題が解決できました!感謝! >>165
矛盾あり(行単位処理として)
> 【NGされないパターン】
> 明日の
条件1のみであればNGされないが
> 条件2
> (ワードA)の後の文字が「の」の場合でもそのレスに(ワードB)が含まれていない場合はNGされる
> ※(ワードB)が含まれていても(ワードAの後の文字が「の」以外の時はNGされる)
ワードBを行内に含んでいないので条件2によりNGされなければならない
以下は
> 明日の
が条件2によりNGされることを前提
(「そのレス」とあるが見本が行単位前提なので行単位しか考慮していない。レス全体なら>>164同様に書き直す必要がある)
【NGされないパターン】
明日みんなで
明日ちゃんと
明日の予定は
【NGされるパターン】
明日の
明日は
明日で
明日も
明日も予定は
明日の未定
> 条件1
> (ワードA)の後に続く最初の文字が
> 「の、み、ち)」はNGされない(それ以外の文字はNGされる)
明日(?![のみち])
(条件2に関わる「明日の 」「明日の未定」「明日の予定は 」すべてこれのみではNGと判断されない)
> 条件2
> (ワードA)の後の文字が「の」の場合でもそのレスに(ワードB)が含まれていない場合はNGされる
> ※(ワードB)が含まれていても(ワードAの後の文字が「の」以外の時はNGされる)
^(?=.*(?:明日の))(?!.*(?:予定))
(条件2に関わる「明日の 」「明日の未定」「明日の予定は 」の内「明日の予定は 」以外はNGされる)
よって
(?:明日(?![のみち]))|(?:^(?=.*(?:明日の))(?!.*(?:予定)))
すべてテンプレ内で説明されている
だからといって「テンプレにあるから質問するな」とは言わない
しかしせめて「これこれ〜したがうまくいかなかった」と自分で手を動かして試行錯誤した経緯(正規表現)を書いてほしいところ(個人の感想です) >>167
レスありがとうございます
今からゆっくり内容を理解しようと思います
>せめて「これこれ〜したがうまくいかなかった」と自分で手を動かして試行錯誤した経緯(正規表現)を書いてほしいところ(個人の感想です)
これに関してですが「正規表現」について知ったのがここ2〜3日で今はまだ ○○|○○|○○
でしかNGワードを登録できてない状態で
自分で特殊文字を使って試行錯誤できるレベルではなくて、すぐにでもNGしたい気持ちの方が強く円投げした形になってしまいました
正規表現には興味があるので試行錯誤できるレベルになりたいです
レスありがとうございました チンコはNGだけど
ガチンコはNGしないってできます? >>169
>>3
> ●後ろや前に特定の文字(または文字列)があるかないかを指定
> (?=あいう) 後ろに'あいう'がある
> (?!あいう) 後ろに'あいう'がない
> (?<あいう) 前に'あいう'がある
> (?<!あいう) 前に'あいう'がない >>3
の(?!)以降のアルファベットの大文字小文字が区別されないとおなじように
カタカナとひらがなが区別されないようなのってどうすればいいですか? >>174
それは定義されてないので無理
「あいす」「アイス」「あイす」などなら[あア][いイ][すス]と列挙するしかない あいうえの順序でワードが点在してるときにNGするにはどうしたらいい?
◯◯あ◯◯◯い◯う◯◯◯え◯◯←NG
◯◯う◯◯◯え◯あ◯◯◯い◯◯←NGされない
こういう感じに >>179
あ.+い.+う.+え
複数行にまたがる場合は
あ[.\n]+い[.\n]+う[.\n]+え >>153
[>>][:blank:]*[00]*[11](?![\d0-9])
>>180は>>3がマッチしない
素直に*でいいのでは? ラーメン書けない実況書けないファミレス書けない関東書けない
もうダメぽ >>2
上から5個目はなんのやつですか?
消えてる? 歩(?!く|こ|け) の場合
@歩く 歩こう 歩けば はNGされませんが
A歩幅 歩み はNGされます
ここまでは良いのですが
五十歩百歩 等『歩』で終わる文がNGされてしまいます @Aは変えずに文末が歩の場合にNGされなくするにはどうしたらよいですか? $や\nをいれてみたりしたんですが上手くいきません >>185,186
歩(?!く|こ|け|\n|$)
これでいけますが、そのレス内に歩幅などのNGワードがあればそちらが優先されNGとなります
また、1文字や改行は[]を用いて下のようにも書けます
歩(?![くこけ\n]|$) >>187
歩(?!く|こ|け|\n|$)
試してみました
○○○五十歩百歩
○○○○○○○○○
はNGなるのですが
五十歩百歩
のみのレスだとNGになりませんでした
これもNGにする方法がありますか? >>185
>NGされなくするにはどうしたらよいですか?
>>188
>これもNGにする方法がありますか?
NGにしたいのかしたくないのか? >>189
歩 で終わるパターンはすべてNGしたいです
レスが
歩や独歩 のみだとNGされません すみません>>185は間違えました
>五十歩百歩 等『歩』で終わる文がNGされてしまいます @Aは変えずに文末が歩の場合にNGされなくするにはどうしたらよいですか?
訂正
五十歩百歩 等『歩』で終わる文がNGされません @Aは変えずに文末が歩の場合にNGされるようにするにはどうしたらよいですか? NGにしたいなら>>185のままでいいです
NGにならない場合はそのレスの"歩"をコピーし、↓の◯部分に入れてみてください
[歩◯](?!く|こ|け)
それでもNGされない場合、スレのURLとレス番を示したほうがいいでしょう >>192
あ なんかこんがらがって迷走してました
>>187で大丈夫みたいです
ありがとうございました ABCの前の文字
○ABCの部分がローマ字、数字、URLに使われる記号(\ _ . :)以外の時にABCをNGにする場合どうすれば良いですか?
文の最初にABCがくる場合もNGできればなお良いです >>196
(?<![a-zA-Z0-9\\_\.:])ABC 文中に「。」が10個以上ある時
を指定できますか? 。。。。のように連続する場合ではなく
文全体で計10個以上の場合です >>201
おお すごい
ありがとうございます!! アンチ対策で正規表現を作っていてそのNGワードを住人と共用する為に2ちゃんにコピペすする場合、文字数制限があって全角で128文字以上になる場合、その都度改行しないとエラーがでて書き込めません。
その為
>>5 @ A
の ^(?=.*A)(?!.*B).*$
等の表現で『 | 』を沢山使うと文字数の問題で下のように@の部分が重複してしまい、全体として長くなってしまうし@がながければ長いほどAに登録できるワードも減ってしまいます(2ちゃんに書き込む時の文字数制限の問題)
自分一人で使う分にはいくら長くなっても問題ないのですが、書き込むことを考慮するとできるだけ簡略化したいです
^(?=.*aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|kkkkh)(?!.*lllll|mmmmmm|nnnnn|oooo|ppppp|qqqqpq).*$
^(?=.*aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|kkkkh)(?!.*あああ|いいい|ううう|えええ|おおお|かかかか).*$
>>3の
『\1』は
^(?=.*A)(?!.*B).*$ の場合
一つ目の()なので(?=.*A)が該当するとおもうのですが
これの応用的な使い方で
正規表現全体(改行含む)の○個目の()を指定することはできますか? 補足
こんな感じで、重複してる部分を指定したいです
【^(?=.*aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|kkkkh)】(?!.*lllll|mmmmmm|nnnnn|oooo|ppppp|qqqqpq).*$
^(?=.*(【】と同じ))(?!.*あああ|いいい|ううう|えええ|おおお|かかかか).*$
^(?=.*(【】と同じ))(?!.*ききき|くくく|けけけ|こここ|さささ|ししし).*$ >>203-204
構文はひとつひとつ別物なのでできません
手間はかかりますがテキストファイルやサイトなどを参照してもらったり、以下のようにしてはいかがでしょう
^(?=.*(@))(?!.*(A)).*$
@に入れる
aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|kkkkh
Aに入れる
lllll|mmmmmm|nnnnn|oooo|ppppp|qqqqpq|あああ|いいい|ううう|えええ|おおお|かかかか|ききき|くくく|けけけ|こここ|さささ|ししし
----または、
正規表現NGワード(改行を消して使ってください)
^(?=.*(aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|
kkkkh))(?!.*(lllll|mmmmmm|nnnnn|oooo|ppppp|qqqqpq|
あああ|いいい|ううう|えええ|おおお|かかかか|ききき|
くくく|けけけ|こここ|さささ|ししし)).*$ ABという単語をNGしたくてABCやDABEをNGしたくない場合どういう正規表現になりますか? >>66のこと?
でもこれって前か後ろの片方でもカタカナならNG回避されるよね?
両方指定したいんだけどどうすればいい? >>100 などの安価はNGせず
> の後の文字が数字以外の場合だけNGしたいのですが上手くできません
\dと(?!)を使いそうなことはわかるのですがどう組み立てて良いかわかりません 〜で終わる
ってテンプレにあった気がするんですがなくなりました? いくつか単語を決めてそのうち2つ以上入ってる文章をNGとかってできます? >>5
●本文に特定の文字列が含まれる、含まれない
(?#1行にA,Bが含まれる)(?=.*A)(?=.*B)
(?#複数行にA,Bが含まれる)(?=[\s\S]*A)(?=[\s\S]*B)
(?#1行にAが含まれBが含まれない)(?=.*A)(?!.*B)
(?#複数行にAが含まれBが含まれない)^(?=.*A)(?!.*B).*$
↑このあたりつかえばいけるっしょ 「2つ以上」はいけそうですね
「3つ以上」とか「4つ以上」とかはできますか? スレタイに改行してるやつの正規表現ってもう出てる?
https://i.imgur.com/ftkoNAO.png
クソうざくてかなわん >>219
俺も同じ質問しようと来た
(?#2行NG)(.*\n){2}
これで消えない? >>220-221
ありがとう
うーん消えない…
https://i.imgur.com/YBX9LuF.png
全体での設定
NGワード正規表現ってところでいいんだよね? >>222
スレ一覧の下にあるアイコンの真ん中のヤツを押す
NGスレッド設定を押す
NGスレッド(正規表現)を押す
\n を入れる >>224
おお!
そんなとこにもNG設定あったのか!
ごめんまじありがとうm(_ _)m ちゃんと板一覧でNGすれ設定に入れたのに(´・ω・`) 再起動かけて入れ直したら反映された(´・ω・`)
何だったんだろうサンクス 昔NGワードに入れてた(.*\n){8}がなんなのかわからないんですがわかる方いますか? >>230
\n は改行
{8} 8個
.と*はわからん >>233
良かれと思って言ったのになんだその言いぐさは
改行と8個で わかるかもしれんだろ
おまえは浅いな >>233
てめーは何様だ?
わかるならおまえが教えろや
わからないなら口挟むなたこすけ >>233は正論じゃん
回答者側になりたいなら中途半端に答えるなよ >>230
憶測だけど簡易型の長文NGっぽいね
長文は無駄だろうからNGしたい
かといって複雑な条件付けをすると計算コストが無駄
8改行(実質的にそれ以上の全ても含む)するほどの本文は無駄に長文だろうとざっくり判断してNG
かな
正規表現ならコメント文を置けるのでコメント付けるようにしておくといいよ
(このレスもそのNGに該当すると思う) >>238
ばかなの?
質問者はそのヒントでわかる可能性があるだろ
なにもないよりはあった方がいい >>238
俺が質問者なら
改行 8個
というワードでどのNGかわかると思ったから書いたんだよ >>238
>>233
おまえらこそ答えられないなら
答えた人を叩くな >>238
>>233
答えた事が良心からである事を肝に命じておけ
そして 謎の上から目線は今後控えた方がいい ID:9fSSFS+0だけがおかしい
瞬間沸騰と必死さから池沼キッズだと思われる (?#末尾P).{8}Pや.{8}[M]をNGIDに正規表現でいれてみたのですが末尾NGができてませんでした。
どうすれば良いでしょうか。 >>248
.{8}[]$
[]内に消したい末尾全てをぶち込めばおk
例えば末尾MとPをNGしたいなら
.{8}[MP]$ ■ このスレッドは過去ログ倉庫に格納されています