twinkle for iOS 正規表現専用 3 [無断転載禁止]©2ch.net

1iOS2017/05/14(日) 08:25:56.37ID:aUmlwHhl
twinkleの正規表現のテストや正規表現に関する質問など

前スレ
twinkle for iOS 正規表現専用(実質2スレ目)
http://karma.2ch.net/test/read.cgi/ios/1447593710/

161iOS2017/09/07(木) 00:30:55.66ID:fdCMHTRb
>>5の確認なんですが

(?#複数行にAが含まれBが含まれない)^(?=.*A)(?!.*B).*$

についてですが

^(?=.*ワードA)(?!.*ワードB).*$
でNGに登録すると

○○○○ワードA○○○○
○○○○○○○○○○   NGされる

○○○ワードA○○○○○
ワードB○○○○○○○○   NGされない

○○○ワードA○○○○○
○○○○○○ワードC○○   NGされる

○○ワードA○○ワードB○
ワードA○○ワードC○○○   NGされない

で合ってますか?

162iOS2017/09/07(木) 01:47:24.35ID:/3vbit57
>>161
合ってる
ちなみにその正規表現はAB(C)の順序は関係なく働く

163iOS2017/09/07(木) 01:49:26.30ID:fdCMHTRb
>>162
ありがとうございます
実際にNGしてみたんですけど

なぜか消えないものと消えるものがあったので
困ってました 原因がわかりませんが他の方法でNGして妥協しました

164iOS2017/09/07(木) 03:01:53.06ID:ZrtUEUPG
>>161
処理系がtwinkleではないしそもそもiOSでもないが同様目的には以下を使っている

(?s:^(?=.*(?:ワードA))(?!.*(?:ワードB)))

165iOS2017/09/07(木) 03:07:23.85ID:fdCMHTRb
下の2つの条件を満たす正規表現の方法を教えて欲しいです。おねがいします

条件1
(ワードA)の後に続く最初の文字が
「の、み、ち)」はNGされない(それ以外の文字はNGされる)

条件2 
(ワードA)の後の文字が「の」の場合でもそのレスに(ワードB)が含まれていない場合はNGされる
※(ワードB)が含まれていても(ワードAの後の文字が「の」以外の時はNGされる)


ワードA=明日
ワードB=予定
とする

【NGされないパターン】
明日の 
明日みんなで 
明日ちゃんと 
明日の予定は 
【NGされるパターン】
明日は
明日で
明日も
明日も予定は

166iOS2017/09/07(木) 03:10:15.74ID:fdCMHTRb
>>164
うわ!ありがとうございます!
>>163
の問題が解決できました!感謝!

167151,156,1642017/09/07(木) 15:52:49.92ID:H034bSCP
>>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される)


よって
(?:明日(?![のみち]))|(?:^(?=.*(?:明日の))(?!.*(?:予定)))


すべてテンプレ内で説明されている
だからといって「テンプレにあるから質問するな」とは言わない
しかしせめて「これこれ〜したがうまくいかなかった」と自分で手を動かして試行錯誤した経緯(正規表現)を書いてほしいところ(個人の感想です)

168iOS2017/09/07(木) 16:40:48.05ID:fdCMHTRb
>>167
レスありがとうございます
今からゆっくり内容を理解しようと思います

>せめて「これこれ〜したがうまくいかなかった」と自分で手を動かして試行錯誤した経緯(正規表現)を書いてほしいところ(個人の感想です)

これに関してですが「正規表現」について知ったのがここ2〜3日で今はまだ ○○|○○|○○
でしかNGワードを登録できてない状態で
自分で特殊文字を使って試行錯誤できるレベルではなくて、すぐにでもNGしたい気持ちの方が強く円投げした形になってしまいました
正規表現には興味があるので試行錯誤できるレベルになりたいです
レスありがとうございました

169iOS2017/09/08(金) 14:50:24.27ID:RsRLZNSX
チンコはNGだけど
ガチンコはNGしないってできます?

170iOS2017/09/08(金) 15:02:13.26ID:ItVLZbN6

171iOS2017/09/08(金) 15:26:46.51ID:G7zWKih/
てす

172iOS2017/09/08(金) 17:42:22.42ID:oblJIAml
>>169
>>3
> ●後ろや前に特定の文字(または文字列)があるかないかを指定
> (?=あいう) 後ろに'あいう'がある
> (?!あいう) 後ろに'あいう'がない
> (?<あいう) 前に'あいう'がある
> (?<!あいう) 前に'あいう'がない

173iOS2017/09/09(土) 15:26:41.29ID:yXCIhzIG
>>172
ありがとう(^-^)

174iOS2017/09/09(土) 15:33:45.39ID:yXCIhzIG
>>3
の(?!)以降のアルファベットの大文字小文字が区別されないとおなじように

カタカナとひらがなが区別されないようなのってどうすればいいですか?

175iOS2017/09/09(土) 15:51:37.51ID:InhnkSGP
>>157
ダメじゃん

176iOS2017/09/09(土) 18:01:50.11ID:CXYO2eQt
>>174
それは定義されてないので無理
「あいす」「アイス」「あイす」などなら[あア][いイ][すス]と列挙するしかない

177iOS2017/09/09(土) 18:05:30.64ID:yXCIhzIG
>>176
どうもです

178iOS2017/09/12(火) 04:38:38.17ID:eTh8tPxJ
>>157
無能

179iOS2017/09/12(火) 14:12:18.42ID:zyiwac0t
あいうえの順序でワードが点在してるときにNGするにはどうしたらいい?

◯◯あ◯◯◯い◯う◯◯◯え◯◯←NG

◯◯う◯◯◯え◯あ◯◯◯い◯◯←NGされない

こういう感じに

180iOS2017/09/13(水) 00:36:50.07ID:khVSbmYq
>>179
あ.+い.+う.+え

複数行にまたがる場合は
あ[.\n]+い[.\n]+う[.\n]+え

181iOS2017/09/13(水) 08:07:44.41ID:sJF8wVnA
>>153
[>>][:blank:]*[00]*[11](?![\d0-9])

>>180>>3がマッチしない
素直に*でいいのでは?

182iOS2017/09/13(水) 09:38:39.01ID:2ThM5Kwb
ラーメン書けない実況書けないファミレス書けない関東書けない

もうダメぽ

183iOS2017/09/13(水) 09:40:52.40ID:2ThM5Kwb
誤爆った or2

BB2Cの話です
ごまんなさい

184iOS2017/09/13(水) 23:48:52.25ID:Mo6fut3r
>>2
上から5個目はなんのやつですか?
消えてる?

185iOS2017/09/14(木) 15:32:58.62ID:T/EAd/dQ
歩(?!く|こ|け)  の場合

@歩く 歩こう 歩けば はNGされませんが
A歩幅 歩み はNGされます

ここまでは良いのですが

五十歩百歩 等『歩』で終わる文がNGされてしまいます @Aは変えずに文末が歩の場合にNGされなくするにはどうしたらよいですか?

186iOS2017/09/14(木) 15:33:53.97ID:T/EAd/dQ
$や\nをいれてみたりしたんですが上手くいきません

187iOS2017/09/14(木) 16:17:06.53ID:5cnrzFuW
>>185,186
歩(?!く|こ|け|\n|$)
これでいけますが、そのレス内に歩幅などのNGワードがあればそちらが優先されNGとなります

また、1文字や改行は[]を用いて下のようにも書けます
歩(?![くこけ\n]|$)

188iOS2017/09/14(木) 16:40:56.15ID:T/EAd/dQ
>>187

歩(?!く|こ|け|\n|$)
試してみました


○○○五十歩百歩
○○○○○○○○○   

はNGなるのですが

五十歩百歩 
のみのレスだとNGになりませんでした
これもNGにする方法がありますか?

189iOS2017/09/14(木) 17:42:46.80ID:5cnrzFuW
>>185
>NGされなくするにはどうしたらよいですか?
>>188
>これもNGにする方法がありますか?

NGにしたいのかしたくないのか?

190iOS2017/09/14(木) 18:06:38.20ID:T/EAd/dQ
>>189
歩 で終わるパターンはすべてNGしたいです

レスが

歩や独歩 のみだとNGされません

191iOS2017/09/14(木) 18:11:50.44ID:T/EAd/dQ
すみません>>185は間違えました

>五十歩百歩 等『歩』で終わる文がNGされてしまいます @Aは変えずに文末が歩の場合にNGされなくするにはどうしたらよいですか?

訂正

五十歩百歩 等『歩』で終わる文がNGされません @Aは変えずに文末が歩の場合にNGされるようにするにはどうしたらよいですか?

192iOS2017/09/14(木) 19:22:19.37ID:5cnrzFuW
NGにしたいなら>>185のままでいいです
NGにならない場合はそのレスの"歩"をコピーし、↓の◯部分に入れてみてください
[歩◯](?!く|こ|け)

それでもNGされない場合、スレのURLとレス番を示したほうがいいでしょう

193iOS2017/09/14(木) 19:50:42.92ID:T/EAd/dQ
歩 

194iOS2017/09/14(木) 19:51:48.30ID:T/EAd/dQ

あああ

195iOS2017/09/14(木) 20:04:50.73ID:T/EAd/dQ
>>192
あ なんかこんがらがって迷走してました
>>187で大丈夫みたいです

ありがとうございました

196iOS2017/09/15(金) 20:06:44.32ID:I1heyhc+
ABCの前の文字 
○ABCの部分がローマ字、数字、URLに使われる記号(\ _ . :)以外の時にABCをNGにする場合どうすれば良いですか?

文の最初にABCがくる場合もNGできればなお良いです

197iOS2017/09/16(土) 00:25:06.46ID:G4SYciD7
>>196
(?<![a-zA-Z0-9\\_\.:])ABC

198iOS2017/09/16(土) 05:09:54.35ID:hxm19b0k
ありがとう(^_^)

199iOS2017/09/18(月) 02:57:35.20ID:eFHbZynC
文中に「。」が10個以上ある時 

を指定できますか?

200iOS2017/09/18(月) 02:58:46.72ID:eFHbZynC
。。。。のように連続する場合ではなく

文全体で計10個以上の場合です

201iOS2017/09/18(月) 07:13:07.43ID:B4oEESF0
>>199-200
([^。]+。){10}

202iOS2017/09/18(月) 20:18:18.75ID:8z5Npmt+
>>201
おお すごい
ありがとうございます!!

203iOS2017/09/19(火) 00:14:50.04ID:ZCphi7dB
アンチ対策で正規表現を作っていてその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)が該当するとおもうのですが
これの応用的な使い方で
正規表現全体(改行含む)の○個目の()を指定することはできますか?

204iOS2017/09/19(火) 00:20:48.88ID:ZCphi7dB
補足
こんな感じで、重複してる部分を指定したいです

【^(?=.*aaaa|bbbb|cccc|dddd|eeee|ffff|gggg|hhhh|iiiii|jjjjjj|kkkkh)】(?!.*lllll|mmmmmm|nnnnn|oooo|ppppp|qqqqpq).*$
^(?=.*(【】と同じ))(?!.*あああ|いいい|ううう|えええ|おおお|かかかか).*$
^(?=.*(【】と同じ))(?!.*ききき|くくく|けけけ|こここ|さささ|ししし).*$

205iOS2017/09/19(火) 01:21:00.41ID:SD60n0iC
>>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|
あああ|いいい|ううう|えええ|おおお|かかかか|ききき|
くくく|けけけ|こここ|さささ|ししし)).*$

206iOS2017/09/19(火) 01:31:10.81ID:ZCphi7dB
>>205
なるほど

ありがとうございました

207iOS2017/09/20(水) 23:18:26.22ID:lyMDwMAL
ABという単語をNGしたくてABCやDABEをNGしたくない場合どういう正規表現になりますか?

208iOS2017/09/21(木) 05:25:26.68ID:5Zk/Namg
もう出てる

209iOS2017/09/21(木) 17:08:40.43ID:cqC2yvOS
>>208
どれ?

210iOS2017/09/22(金) 17:58:05.43ID:NYvRQhiG
>>66のこと?
でもこれって前か後ろの片方でもカタカナならNG回避されるよね?
両方指定したいんだけどどうすればいい?

211iOS2017/09/22(金) 21:32:46.26ID:V+MAPeVC
>>100 などの安価はNGせず
> の後の文字が数字以外の場合だけNGしたいのですが上手くできません
\dと(?!)を使いそうなことはわかるのですがどう組み立てて良いかわかりません

新着レスの表示
レスを投稿する