お望みの先読み使って書くなら /fo(?!o)/
だろうが、
こんなの使うくらいなら
if (/foo/) {
} else {
※ここに書いたほうがいいに決まってる
}
で、もはや正規表現使うコストももったいないくらいだから
普通は strpos()みたいな関数使うべきだろう。
正規表現道場 Part2
83nobodyさん
2014/01/19(日) 11:23:45.74ID:???84nobodyさん
2014/01/19(日) 15:12:27.67ID:U6WWS19r 先頭一致とか後方一致はsubstr使ってる
iオプション必要なら代わりにlc
iオプション必要なら代わりにlc
85nobodyさん
2014/01/19(日) 15:26:00.19ID:??? c
86nobodyさん
2014/01/19(日) 17:13:11.44ID:???87nobodyさん
2014/01/21(火) 04:23:32.47ID:???88nobodyさん
2014/01/24(金) 01:21:47.01ID:??? うーむ、オートマトンの勉強というか、まだ触りしか学んでないんだが
既に文字列否定の正規表現を簡単に作れるようになってしまった。
チャリの運転と同じで、一旦出来るようになるとなんてことないね。
既に文字列否定の正規表現を簡単に作れるようになってしまった。
チャリの運転と同じで、一旦出来るようになるとなんてことないね。
89nobodyさん
2014/01/24(金) 05:08:57.49ID:??? (次のお題)
abc かつ def を含まない文字列を表す正規表現を作れ。ただし先読みはNG。
abc かつ def を含まない文字列を表す正規表現を作れ。ただし先読みはNG。
90nobodyさん
2014/01/25(土) 14:00:24.10ID:peRg4Ln+ お題が提示されておりますが、質問よろしいでしょうか。
言語は Java(Android開発) です。
やりたいことは、
・'a', 'b', 'c', '*' の4つの文字が使われた文字列を分割する
・'a*', 'b*', 'c*' は1文字として扱い、'*'のみの物は無い
になります。
例えば "aba*cb*" の場合は
a
b
a*
c
b*
に分割したいです。
どのように書けば良いのでしょうか、ご教授願います。
言語は Java(Android開発) です。
やりたいことは、
・'a', 'b', 'c', '*' の4つの文字が使われた文字列を分割する
・'a*', 'b*', 'c*' は1文字として扱い、'*'のみの物は無い
になります。
例えば "aba*cb*" の場合は
a
b
a*
c
b*
に分割したいです。
どのように書けば良いのでしょうか、ご教授願います。
91nobodyさん
2014/01/25(土) 17:37:15.39ID:VUYYCfMh ([abc]\*?)
92nobodyさん
2014/01/26(日) 00:17:59.26ID:??? このスレは道場と名の付いてる通り正規表現のスキルアップを目指すスレです。
糞質問・キチガイは↓こちらにお願いします。
Regular Expression(正規表現) Part12
http://toro.2ch.net/test/read.cgi/tech/1387257592/
糞質問・キチガイは↓こちらにお願いします。
Regular Expression(正規表現) Part12
http://toro.2ch.net/test/read.cgi/tech/1387257592/
9390
2014/01/26(日) 13:40:59.38ID:???94nobodyさん
2014/01/26(日) 23:09:13.31ID:??? ここはもう荒らしの本拠地になってるから仕方がないよ。
わざわざ煽りにム板まで出張してきてるし。
わざわざ煽りにム板まで出張してきてるし。
95nobodyさん
2014/01/27(月) 00:48:44.89ID:??? こちらは精神異常者の隔離スレとなっております
96nobodyさん
2014/01/27(月) 05:05:55.59ID:??? じゅんじゅんのきまぐれ
http://d.hatena.ne.jp/junjun777/20110927/regexp_not_include
おや、あわわさんとやらが俺の代わりに知らせに行ってくれてたのか。
あわわさん乙。ありがとう。
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/337
ってあれ?あわわさんのほうが6時間早い。CPU時計の時差?
http://d.hatena.ne.jp/junjun777/20110927/regexp_not_include
おや、あわわさんとやらが俺の代わりに知らせに行ってくれてたのか。
あわわさん乙。ありがとう。
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/337
ってあれ?あわわさんのほうが6時間早い。CPU時計の時差?
97nobodyさん
2014/01/29(水) 03:59:46.05ID:??? レベル高いスレにただいま。
98nobodyさん
2014/01/29(水) 04:05:21.14ID:??? 荒らしの住み処
ただのクソスレ
ただのクソスレ
99nobodyさん
2014/01/29(水) 05:11:24.62ID:??? ところで向こうの267は雑技たんなのかな?266、雑技のネタに使ってもよかですたい。
100nobodyさん
2014/01/29(水) 08:45:10.20ID:??? >>99
当たりw
266の書き方は考えたけど,今回のケースでは267の書き方で大丈夫と考えた.
そういや質問者は「1」を含まないって書いてあるのに,なぜ「123」? とは思ったなw
後ろに他の正規表現を続けたりするとバックトラックして,
271の通りの可能性があるから初心者には266の方がいいのは確か.
ただ,他にもいろいろ考え出すと,最も内側のものだけ削除したいのなら,
ABC(?:(?!123|ABC|DEF).)*DEF
と書いた方がいいとかもある.
ちなみに266のミソは↓の辺りで微妙に使っていたりする.
http://www.din.or.jp/~ohzaki/regex.htm#NoEndTag
当たりw
266の書き方は考えたけど,今回のケースでは267の書き方で大丈夫と考えた.
そういや質問者は「1」を含まないって書いてあるのに,なぜ「123」? とは思ったなw
後ろに他の正規表現を続けたりするとバックトラックして,
271の通りの可能性があるから初心者には266の方がいいのは確か.
ただ,他にもいろいろ考え出すと,最も内側のものだけ削除したいのなら,
ABC(?:(?!123|ABC|DEF).)*DEF
と書いた方がいいとかもある.
ちなみに266のミソは↓の辺りで微妙に使っていたりする.
http://www.din.or.jp/~ohzaki/regex.htm#NoEndTag
101nobodyさん
2014/01/29(水) 15:23:04.24ID:??? >>100
ああ、考えてみればABCも入れたほうがいいね。質問者の対象データが対になってる
データだったから必要性を感じなかったが入れるべきだった、さすが雑技たん。
>なぜ「123」?
1というのは実データとは違う省略形と考えた。
初心者には文字と文字列の違いが分からないから文字列のつもりで1と書いてしまった
可能性がある。そこで文字列に対応しておけば1文字にも対応出来るってわけ。
>ABC(?:(?!123|ABC|DEF).)*DEF
これが基本形やね。高速化するなら*+とか、もっとやるなら[^1AD]*+使ってごちゃごちゃ書いたり。
>NoEnd
ミソは否定の中に分岐を入れることだからそれとはちょっと違うw
それと <\2> だと <font> になってしまうで・・ <\2\b やね。
ああ、考えてみればABCも入れたほうがいいね。質問者の対象データが対になってる
データだったから必要性を感じなかったが入れるべきだった、さすが雑技たん。
>なぜ「123」?
1というのは実データとは違う省略形と考えた。
初心者には文字と文字列の違いが分からないから文字列のつもりで1と書いてしまった
可能性がある。そこで文字列に対応しておけば1文字にも対応出来るってわけ。
>ABC(?:(?!123|ABC|DEF).)*DEF
これが基本形やね。高速化するなら*+とか、もっとやるなら[^1AD]*+使ってごちゃごちゃ書いたり。
>NoEnd
ミソは否定の中に分岐を入れることだからそれとはちょっと違うw
それと <\2> だと <font> になってしまうで・・ <\2\b やね。
102nobodyさん
2014/01/30(木) 00:29:41.02ID:??? >>101
>1というのは実データとは違う省略形と考えた。
なるほど.確かに,初心者ほど状況説明が下手だからね.
>それと <\2> だと <font> になってしまうで・・ <\2\b やね。
単純なミスだな.指摘ありがとう.
>1というのは実データとは違う省略形と考えた。
なるほど.確かに,初心者ほど状況説明が下手だからね.
>それと <\2> だと <font> になってしまうで・・ <\2\b やね。
単純なミスだな.指摘ありがとう.
103nobodyさん
2014/01/30(木) 07:11:02.94ID:??? ・範囲内で文字列を含まない正規表現
$_ = "zzzABC XYDEFzzDEFz";
if ( m/
# Perl 5.10 以降で有効
ABC
[^XAD]*
(?:
(?!XYZ|ABC|DEF).
[^XAD]*
)*
(*PRUNE) # バックトラックステートの削除
(*SKIP) # 次回の走査開始位置をここに飛ばす
(?:XY?)? # XYZとDEFの競合を想定した取りこぼし回収
DEF
/xgsiaap )
{ print "match! <".${^MATCH}.">"; }
else
{ print "no match."; }
>>102
修正乙!
$_ = "zzzABC XYDEFzzDEFz";
if ( m/
# Perl 5.10 以降で有効
ABC
[^XAD]*
(?:
(?!XYZ|ABC|DEF).
[^XAD]*
)*
(*PRUNE) # バックトラックステートの削除
(*SKIP) # 次回の走査開始位置をここに飛ばす
(?:XY?)? # XYZとDEFの競合を想定した取りこぼし回収
DEF
/xgsiaap )
{ print "match! <".${^MATCH}.">"; }
else
{ print "no match."; }
>>102
修正乙!
104nobodyさん
2014/01/30(木) 13:46:05.59ID:??? 修正乙の後でアレなんだけど、実際に動かしてみたらだいぶおかしいから手直ししてみたよ、と。
while ($html =~ /
<(NOBR|CODE|B|PRE|FONT)\b
(?=
(
(?:(?!<\/\1>).)*?
(?:<\1\b|$)
)
)
/sixg
) {
print "<".$1.$2, "\n";
}
------------- perl.htm -------------
<b><font><pre><b>aaa
------------- perl.htm -------------
*? はなるべく使いたくないなぁ・・ [^<]*+ を使って最適化したいw
while ($html =~ /
<(NOBR|CODE|B|PRE|FONT)\b
(?=
(
(?:(?!<\/\1>).)*?
(?:<\1\b|$)
)
)
/sixg
) {
print "<".$1.$2, "\n";
}
------------- perl.htm -------------
<b><font><pre><b>aaa
------------- perl.htm -------------
*? はなるべく使いたくないなぁ・・ [^<]*+ を使って最適化したいw
105nobodyさん
2014/01/31(金) 02:30:50.66ID:???106nobodyさん
2014/01/31(金) 04:37:54.39ID:??? >>105
>単独では
・・・ ( ・・・ (*PRUNE) )
みたいに ( ) で分断されてる場合とか? (?> だと2つ以上必要になる。
>マッチが先に
当たり〜。printのとこは""の中にまとめて書いても大丈夫だったのか、勉強になりますた。
改めて修正乙。
>単独では
・・・ ( ・・・ (*PRUNE) )
みたいに ( ) で分断されてる場合とか? (?> だと2つ以上必要になる。
>マッチが先に
当たり〜。printのとこは""の中にまとめて書いても大丈夫だったのか、勉強になりますた。
改めて修正乙。
107nobodyさん
2014/01/31(金) 10:29:26.11ID:??? >>103
「XYZとDEFの競合」ってのはXYZの後半封舶ェがDEFの前半部分と同じ場合ってことかな?
例えば,xydとdef,とか,xdeとdefみたいな
もしそういう,後半部分と前半部分が重なる場合を考え出すと,話がもう少しややこしくなる.
つまり,ABCDとCDEFがキーだったときに,ABCDEFという文字があったら,
それはABCD+EFと解釈するのか,AB+CDEFと解釈するのか,という問題.
その解釈がすべて前方優先なのか,すべて後方優先なのか,それともキーの相互の優先度で決まるのか,
あるいは,あらゆる可能性を許すのか,あらゆる可能性を許さないのか.
キー自身が重なる場合もある.
例えば,ABCABみたいなキーだったとき,ABCABCABは,ABCAB+CABなのか,ABC+ABCABなのか.
「XYZとDEFの競合」ってのはXYZの後半封舶ェがDEFの前半部分と同じ場合ってことかな?
例えば,xydとdef,とか,xdeとdefみたいな
もしそういう,後半部分と前半部分が重なる場合を考え出すと,話がもう少しややこしくなる.
つまり,ABCDとCDEFがキーだったときに,ABCDEFという文字があったら,
それはABCD+EFと解釈するのか,AB+CDEFと解釈するのか,という問題.
その解釈がすべて前方優先なのか,すべて後方優先なのか,それともキーの相互の優先度で決まるのか,
あるいは,あらゆる可能性を許すのか,あらゆる可能性を許さないのか.
キー自身が重なる場合もある.
例えば,ABCABみたいなキーだったとき,ABCABCABは,ABCAB+CABなのか,ABC+ABCABなのか.
108nobodyさん
2014/01/31(金) 10:34:35.37ID:??? >>106
>・・・ ( ・・・ (*PRUNE) )
なるほど,括弧の深いところで使うと,(?> で表現するのは大変そうだ.
しかも,もしそれが中間レベルで分岐してたりすると,(?> では表現しきれないかな.
>・・・ ( ・・・ (*PRUNE) )
なるほど,括弧の深いところで使うと,(?> で表現するのは大変そうだ.
しかも,もしそれが中間レベルで分岐してたりすると,(?> では表現しきれないかな.
109nobodyさん
2014/01/31(金) 16:13:45.49ID:???110nobodyさん
2014/02/01(土) 16:48:52.03ID:??? ## (*COMMIT)
$_ = "12";
if (
m/^1((*COMMIT)3|2)/
){ print "match!\n"; }
# 分岐の中で踏まれると以後ほかの分岐要素を走査することがなくなる。
# 現在の分岐要素がマッチ失敗したら全体もマッチ失敗となり検索はそこで完全終了する。
m/^1(*COMMIT)(3|2)/
# 下位層の分岐は走査され、マッチが成功する。
$_ = "12";
@test = $_ =~ m/^1(*COMMIT)A|\d/g;
print "@test\n";
# /g でも次位置からの走査は行われない。
@test = $_ =~ m/^1(*COMMIT)|\d/g;
# 結果 = 1 2 。マッチが成功した場合は走査を止めることはない。(失敗したときだけ止める)
$_ = "12";
if (
m/^1((*COMMIT)3|2)/
){ print "match!\n"; }
# 分岐の中で踏まれると以後ほかの分岐要素を走査することがなくなる。
# 現在の分岐要素がマッチ失敗したら全体もマッチ失敗となり検索はそこで完全終了する。
m/^1(*COMMIT)(3|2)/
# 下位層の分岐は走査され、マッチが成功する。
$_ = "12";
@test = $_ =~ m/^1(*COMMIT)A|\d/g;
print "@test\n";
# /g でも次位置からの走査は行われない。
@test = $_ =~ m/^1(*COMMIT)|\d/g;
# 結果 = 1 2 。マッチが成功した場合は走査を止めることはない。(失敗したときだけ止める)
111nobodyさん
2014/02/01(土) 17:24:27.45ID:??? Q、(*COMMIT) とは逆にマッチが成功したときだけ /g を止める最も簡単な手段は何か?
$_ = "123";
@test = $_ =~ m/1|2|3/g;
print "@test\n";
↑2 がマッチ成功したときに /g を止め、3がマッチしないようにする。
フラグ変数を用意、チェックすれば可能だがもっと手軽な手段はないか。
$_ = "123";
@test = $_ =~ m/1|2|3/g;
print "@test\n";
↑2 がマッチ成功したときに /g を止め、3がマッチしないようにする。
フラグ変数を用意、チェックすれば可能だがもっと手軽な手段はないか。
112nobodyさん
2014/02/02(日) 07:59:18.35ID:??? う〜ん、/g はループなのに break する方法が用意されていない。
COMMIT があるのにこれがないのはとても不可解だ。
# 先読みの中の (*SKIP) は機能しない。
@test = $_ =~ m/1|2(?=.*(*SKIP))|3/g;
# while 文の last を使う。
$_ = "123";
while ( m/1|2|3/gp )
{ print "${^MATCH}\n";
last; } # 1 で止まる。
# (?{code}) で last → 効果なし
while ( m/1|2(?{ last; })|3/gp )
# while 文に名前を付けて (?{code}) で last → 効果なし
TEST : while ( m/1|2(?{ last TEST; })|3/gp )
perl陣営に言えば新しいコマンド作ってくれそうだなぁ。
COMMIT があるのにこれがないのはとても不可解だ。
# 先読みの中の (*SKIP) は機能しない。
@test = $_ =~ m/1|2(?=.*(*SKIP))|3/g;
# while 文の last を使う。
$_ = "123";
while ( m/1|2|3/gp )
{ print "${^MATCH}\n";
last; } # 1 で止まる。
# (?{code}) で last → 効果なし
while ( m/1|2(?{ last; })|3/gp )
# while 文に名前を付けて (?{code}) で last → 効果なし
TEST : while ( m/1|2(?{ last TEST; })|3/gp )
perl陣営に言えば新しいコマンド作ってくれそうだなぁ。
113nobodyさん
2014/02/02(日) 08:47:00.66ID:??? # (?-g) → 効果なし
while ( m/1|2(?-g)|3/g )
# 苦肉の策 (現実的でない)
while (
m/(1)|(2).*|(3)/g
)
{ print "${^N}\n"; }
# 苦肉の策 + 最後の空文字列にマッチしない対策 (現実的でない)
while (
m/\z(*COMMIT)(*F)|(1)|(2).*|$/g
)
{ print "match! ${^N}\n"; }
while ( m/1|2(?-g)|3/g )
# 苦肉の策 (現実的でない)
while (
m/(1)|(2).*|(3)/g
)
{ print "${^N}\n"; }
# 苦肉の策 + 最後の空文字列にマッチしない対策 (現実的でない)
while (
m/\z(*COMMIT)(*F)|(1)|(2).*|$/g
)
{ print "match! ${^N}\n"; }
114nobodyさん
2014/02/02(日) 10:19:23.61ID:??? >>111
>>112 >>123
/g がループというのはちょっと違う.
リストコンテキストで評価したときはループと言えるが,スカラーコンテキストで評価したときはループではなく,
単に前回マッチした場所を覚えていて続きからマッチングを行うというだけ.
この問題はリストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないかって言う問題だと解釈した.
スカラーコンテキストで評価したときに止めるんなら last を使えば簡単に止まる話.
つまり,while を使っていいんなら,
while (/1|2(*:STOP)|3/g) {
push(@test, $&);
last if $REGMARK eq 'STOP';
}
print "'@test'\n";
リストコンテキストで評価したときに途中で止めるには,かなり条件が限定されるが,
@test = $_ =~ m/(?(?<=2)\G(*COMMIT)(*FAIL))(?:1|2|3)/g;
ぐらいしか思いつかなかった.
これではフラグを使った方が簡単だろう.
>>112 >>123
/g がループというのはちょっと違う.
リストコンテキストで評価したときはループと言えるが,スカラーコンテキストで評価したときはループではなく,
単に前回マッチした場所を覚えていて続きからマッチングを行うというだけ.
この問題はリストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないかって言う問題だと解釈した.
スカラーコンテキストで評価したときに止めるんなら last を使えば簡単に止まる話.
つまり,while を使っていいんなら,
while (/1|2(*:STOP)|3/g) {
push(@test, $&);
last if $REGMARK eq 'STOP';
}
print "'@test'\n";
リストコンテキストで評価したときに途中で止めるには,かなり条件が限定されるが,
@test = $_ =~ m/(?(?<=2)\G(*COMMIT)(*FAIL))(?:1|2|3)/g;
ぐらいしか思いつかなかった.
これではフラグを使った方が簡単だろう.
>>114
>ループというのはちょっと違う
そのへんはちゃんと理解してるから大丈夫。foreachとか<>みたいなつもりで書いてるから。
>リストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないか
その通り。
>(*:STOP)
これはフラグ変数を使うやり方とまったく同じだからボツ・・。{ } の中で last するのはナシ。
m/ / の中で止められないか、という話だから。
しかも$REGMARKと$REGERRORは予期しない動きをすることがあるから
普通にフラグを使ったほうが確実。(後述)
>これではフラグを使った方が簡単だろう
やっぱそうかぁ、雑技たんでもダメなら無理そうだね。考えてくれてありがとう。
>ループというのはちょっと違う
そのへんはちゃんと理解してるから大丈夫。foreachとか<>みたいなつもりで書いてるから。
>リストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないか
その通り。
>(*:STOP)
これはフラグ変数を使うやり方とまったく同じだからボツ・・。{ } の中で last するのはナシ。
m/ / の中で止められないか、という話だから。
しかも$REGMARKと$REGERRORは予期しない動きをすることがあるから
普通にフラグを使ったほうが確実。(後述)
>これではフラグを使った方が簡単だろう
やっぱそうかぁ、雑技たんでもダメなら無理そうだね。考えてくれてありがとう。
116nobodyさん
2014/02/02(日) 14:08:53.79ID:??? ## $REGERROR
# マッチ失敗でも$REGERRORが偽を返す例
$_ = "11";
m/^(*MARK:NAME)12/;
if ($REGERROR){ print "yes\n" }else{ print "no\n"; };
結果 → no
# 2 を (?!) や (*FAIL) に変えると・・?
m/^(*MARK:NAME)1(?!)/;
結果 → yes
2 を $ にすると no のまま。
# マッチ失敗でも$REGERRORが偽を返す例
$_ = "11";
m/^(*MARK:NAME)12/;
if ($REGERROR){ print "yes\n" }else{ print "no\n"; };
結果 → no
# 2 を (?!) や (*FAIL) に変えると・・?
m/^(*MARK:NAME)1(?!)/;
結果 → yes
2 を $ にすると no のまま。
117nobodyさん
2014/02/02(日) 14:12:45.66ID:??? あれ、$REGMARK が予期しない動作になるデータはないや。
ごめん、使えないのは $REGERROR だけかも。
ごめん、使えないのは $REGERROR だけかも。
118nobodyさん
2014/02/02(日) 14:30:37.56ID:??? >単に前回マッチした場所を覚えていて続きからマッチングを行うというだけ
あ、ちゃう、これ分かってなかった。場所覚えてるだけだったのか、違和感感じてたんだけど
やっと理解出来たよ、ありがとう。
あと雑技たんのサイトだけど
>回文にマッチする正規表現 # 再帰版
× (??{$palindrome})*
○ (??{$palindrome})?
だね。前者だと回文を繋げた文字列 121454989・・・ みたいなのを拾ってしまう。
あ、ちゃう、これ分かってなかった。場所覚えてるだけだったのか、違和感感じてたんだけど
やっと理解出来たよ、ありがとう。
あと雑技たんのサイトだけど
>回文にマッチする正規表現 # 再帰版
× (??{$palindrome})*
○ (??{$palindrome})?
だね。前者だと回文を繋げた文字列 121454989・・・ みたいなのを拾ってしまう。
おや、出来ちゃった・・
# リストコンテキスト + /p のマッチング中に break する。
$_ = "123";
@test = $_ =~ m/
1
|2
(?{ $last = "${^MATCH}"; })
(*COMMIT)(*F)
|3
/xgp;
push(@test,$last);
print "@test\n";
# リストコンテキスト + /p のマッチング中に break する。( push版 )
push(@test,
m/
1
|2
(?{ $last= ${^MATCH}; })
(*COMMIT)(*F)
|3
/xgp
,
$last
);
>>119
仕事はやっ!修正乙〜
# リストコンテキスト + /p のマッチング中に break する。
$_ = "123";
@test = $_ =~ m/
1
|2
(?{ $last = "${^MATCH}"; })
(*COMMIT)(*F)
|3
/xgp;
push(@test,$last);
print "@test\n";
# リストコンテキスト + /p のマッチング中に break する。( push版 )
push(@test,
m/
1
|2
(?{ $last= ${^MATCH}; })
(*COMMIT)(*F)
|3
/xgp
,
$last
);
>>119
仕事はやっ!修正乙〜
↑× /p のマッチング中に → /g の間違い
----------------------------------------------
# 先読みの中の (*SKIP) は正しく機能する。(× >>112)
$_ = "123";
@test = $_ =~ m/1|2(?=.*\z(*SKIP)(*F))|3/g;
print "@test\n";
# 結果 → 1
# 先読みの中の (*SKIP) が失敗する例もある
@test = $_ =~ m/1|2(?=.*\z(*SKIP))(*F)|3/g;
# 結果 → 1 3
# perl内部の最適化の影響により (?=) より早く (*F) が判定されている?
# $REGERROR が期待通りに動かない原因も最適化が犯人? (最適化は 詳説 正規表現 参照)
----------------------------------------------
# \z で始まる正規表現 + while( /g )
while (
m/\z(?{ print "in code\n"; })/g
)
{ print "match!\n"; }
<結果>
in code
match!
in code
2回走査されてる。2回目は走査しといてマッチ失敗。/g により1つ先に進む動作の副作用?
(?{code}) が2回実行されるのでプログラムが想定外の動作になる可能性。
/g を忘れると走査開始位置が毎回先頭に戻り、無限ループになる。
----------------------------------------------
# 先読みの中の (*SKIP) は正しく機能する。(× >>112)
$_ = "123";
@test = $_ =~ m/1|2(?=.*\z(*SKIP)(*F))|3/g;
print "@test\n";
# 結果 → 1
# 先読みの中の (*SKIP) が失敗する例もある
@test = $_ =~ m/1|2(?=.*\z(*SKIP))(*F)|3/g;
# 結果 → 1 3
# perl内部の最適化の影響により (?=) より早く (*F) が判定されている?
# $REGERROR が期待通りに動かない原因も最適化が犯人? (最適化は 詳説 正規表現 参照)
----------------------------------------------
# \z で始まる正規表現 + while( /g )
while (
m/\z(?{ print "in code\n"; })/g
)
{ print "match!\n"; }
<結果>
in code
match!
in code
2回走査されてる。2回目は走査しといてマッチ失敗。/g により1つ先に進む動作の副作用?
(?{code}) が2回実行されるのでプログラムが想定外の動作になる可能性。
/g を忘れると走査開始位置が毎回先頭に戻り、無限ループになる。
122nobodyさん
2014/02/03(月) 17:57:59.62ID:??? # リストコンテキスト + /g のマッチング中に break する。(perl 旧verl対応版)
$_ = "12223";
@test = $_ =~ m/
1
|2
(?{ $last = "$&"; })
.*\z # 余った文字列を全部マッチさせる。
|3
/xgs;
$test[$#test] = $last; # 最後の要素の入れ替え
print "@test\n";
これらを "break出来てる" と言うのはちょっとおこがましいかも知れない。やはり break コマンドが欲しい。
$_ = "12223";
@test = $_ =~ m/
1
|2
(?{ $last = "$&"; })
.*\z # 余った文字列を全部マッチさせる。
|3
/xgs;
$test[$#test] = $last; # 最後の要素の入れ替え
print "@test\n";
これらを "break出来てる" と言うのはちょっとおこがましいかも知れない。やはり break コマンドが欲しい。
・$REGERROR を (?{code}) と入れ替えて実験
my $cnt = 0;
$_ = "11";
m/^(?{ $cnt++;})1(*F)/;
print "$cnt\n";
# 結果 → 1
my $cnt = 0;
$_ = "11";
m/^(?{ $cnt++;})12/;
print "$cnt\n";
# 結果 → 0
$REGERROR さんに無罪判決。冤罪でした。
my $cnt = 0;
$_ = "11";
m/^(?{ $cnt++;})1(*F)/;
print "$cnt\n";
# 結果 → 1
my $cnt = 0;
$_ = "11";
m/^(?{ $cnt++;})12/;
print "$cnt\n";
# 結果 → 0
$REGERROR さんに無罪判決。冤罪でした。
124nobodyさん
2014/02/04(火) 13:39:28.33ID:??? 皆様、こんにちは 質問させてください
テキスト内の文字を置き換えるアプリ(Devas)で作業をしています
正規表現で文字検索と置き換えしたいのですが表現法がわかりませんので
詳しい方アドバイス下さいませんでしょうか?
テキスト内には
.(ドット)abc"IMG
.(ドット)def"IMG
.(ドット)ghr"IMG
など . と "IMG で囲まれた数パターンの文字列がありこれに元文字列を利用し .photo を付け加えたいのです
.(ドット).photo.abc"IMG
.(ドット).photo.def"IMG
.(ドット).photo.ghr"IMG
検索、置き換え 共に正規表現が使えるアプリなのですがそれぞれどう表現して良いのか教えてくださいませんか?
よろしくお願いいたします
テキスト内の文字を置き換えるアプリ(Devas)で作業をしています
正規表現で文字検索と置き換えしたいのですが表現法がわかりませんので
詳しい方アドバイス下さいませんでしょうか?
テキスト内には
.(ドット)abc"IMG
.(ドット)def"IMG
.(ドット)ghr"IMG
など . と "IMG で囲まれた数パターンの文字列がありこれに元文字列を利用し .photo を付け加えたいのです
.(ドット).photo.abc"IMG
.(ドット).photo.def"IMG
.(ドット).photo.ghr"IMG
検索、置き換え 共に正規表現が使えるアプリなのですがそれぞれどう表現して良いのか教えてくださいませんか?
よろしくお願いいたします
・開始タグと閉じタグの間に文字列を含まない正規表現 (正規表現 否定 除く)
$_ = "ABC ABC DEF ABCDEF";
while ( m/
# Perl 5.10 以降で有効
ABC
[^ADX]* # 先頭の文字を使った高速処理
(?:
(?:
DEF (*ACCEPT) # マッチ成功
|\K ABC # 今までマッチした文字列を捨ててリスタート
|XYZ (*PRUNE) (*SKIP) (*F) # NGワード検出、マッチ失敗
|. # ↑の3つ以外の1文字
)
[^ADX]*
)*
(*COMMIT) (*F) # DEFで閉じられないまま終端に到達。
/xgsiaap )
{ print "match! <${^MATCH}>\n"; }
# NGワード、開始タグ、閉じタグの競合は想定していない。
# 例、NGワード="</" 、 閉じタグ="</div>"
$_ = "ABC ABC DEF ABCDEF";
while ( m/
# Perl 5.10 以降で有効
ABC
[^ADX]* # 先頭の文字を使った高速処理
(?:
(?:
DEF (*ACCEPT) # マッチ成功
|\K ABC # 今までマッチした文字列を捨ててリスタート
|XYZ (*PRUNE) (*SKIP) (*F) # NGワード検出、マッチ失敗
|. # ↑の3つ以外の1文字
)
[^ADX]*
)*
(*COMMIT) (*F) # DEFで閉じられないまま終端に到達。
/xgsiaap )
{ print "match! <${^MATCH}>\n"; }
# NGワード、開始タグ、閉じタグの競合は想定していない。
# 例、NGワード="</" 、 閉じタグ="</div>"
126nobodyさん
2014/02/04(火) 20:09:35.38ID:xuvSG1oC s/^\./.photo./g
行頭限定の場合
行頭限定の場合
>>124
<検索>
\.([a-z\d]{1,4}"IMG\b)
<置換>
..photo.$1
\. を ( ) に入れてないのは処理効率を上げるため。
「abc」の部分は拡張子と考えて数字も許可した。(1文字以上4文字以下の英数字)
何かまずかったら遠慮なく。
<検索>
\.([a-z\d]{1,4}"IMG\b)
<置換>
..photo.$1
\. を ( ) に入れてないのは処理効率を上げるため。
「abc」の部分は拡張子と考えて数字も許可した。(1文字以上4文字以下の英数字)
何かまずかったら遠慮なく。
128124
2014/02/06(木) 18:00:16.14ID:??? たくさんレスいただきましてありがとうございます
お礼が遅れまして申し訳ありません
127様の \.([a-z\d]{1,4}"IMG\b) で無事検索できることができました
しかし置き換えでは マッチした文字列が ..photo.$1 に置き換わるだけで $1にマッチした語句が適応されません
検索結果
○○○○○○.abc" IMG が ○○○○○○..photo.$1 となります
希望では
○○○○○○.photo.abc" IMG となることです(単純に .拡張子 前に .photo を入れたい)
先の書き込みでの訂正がありました 申し訳ありません
検索したい文字列には " と IMG の間に半角スペースがありました
半角があっても上手く検索にひっかっかっていますが
上手く置き換えができないのはこの半角が原因なのでしょうか?
引き続きご指導いただければ幸いです よろしくお願いいたします
お礼が遅れまして申し訳ありません
127様の \.([a-z\d]{1,4}"IMG\b) で無事検索できることができました
しかし置き換えでは マッチした文字列が ..photo.$1 に置き換わるだけで $1にマッチした語句が適応されません
検索結果
○○○○○○.abc" IMG が ○○○○○○..photo.$1 となります
希望では
○○○○○○.photo.abc" IMG となることです(単純に .拡張子 前に .photo を入れたい)
先の書き込みでの訂正がありました 申し訳ありません
検索したい文字列には " と IMG の間に半角スペースがありました
半角があっても上手く検索にひっかっかっていますが
上手く置き換えができないのはこの半角が原因なのでしょうか?
引き続きご指導いただければ幸いです よろしくお願いいたします
>>128
ごめんなさい、こちらにも見落としがいくつかありました。
( Devasにはメジャーな正規表現エンジンが使われていると考えて作りましたが違ったようです )
・通常版 (上行=検索、下行=置換)
\.[a-zA-Z\d]{1,4}" ?IMG\b
.photo\0
・拡張子を小文字に変換する版 (例 .JPG → .jpg )
\.([a-zA-Z\d]{1,4})(" ?IMG\b)
.photo.\L\1\E\2
・ 「"」 と IMG の間のスペースがあっても無くてもスペース1個にする版
\.([a-zA-Z\d]{1,4})" ?IMG\b
.photo.\L\1\E" IMG
# \L と \E を削除すれば拡張子の小文字変換はしなくなります。
# 本当は .photo.photo.jpg のような複数回置換による重複を防ぎたかったんですが
# この正規表現エンジンでは無理なようです。(>_<)
ごめんなさい、こちらにも見落としがいくつかありました。
( Devasにはメジャーな正規表現エンジンが使われていると考えて作りましたが違ったようです )
・通常版 (上行=検索、下行=置換)
\.[a-zA-Z\d]{1,4}" ?IMG\b
.photo\0
・拡張子を小文字に変換する版 (例 .JPG → .jpg )
\.([a-zA-Z\d]{1,4})(" ?IMG\b)
.photo.\L\1\E\2
・ 「"」 と IMG の間のスペースがあっても無くてもスペース1個にする版
\.([a-zA-Z\d]{1,4})" ?IMG\b
.photo.\L\1\E" IMG
# \L と \E を削除すれば拡張子の小文字変換はしなくなります。
# 本当は .photo.photo.jpg のような複数回置換による重複を防ぎたかったんですが
# この正規表現エンジンでは無理なようです。(>_<)
130nobodyさん
2014/02/06(木) 22:22:42.47ID:??? >>129
度々のレスありがとうございます
正規表現エンジンにもいろいろなものがあるとは知りませんでした
お手数をおかけいたしまして申し訳ありません
いくつものパターンを示してくださいまして
重ねて感謝いたします
通常版にて理想の変換ができました
今回教えて頂いたような知識を深めて、もっと便利にPCを使えるようになりたいと思います
勉強になりました ありがとうございます m(_ _)m
度々のレスありがとうございます
正規表現エンジンにもいろいろなものがあるとは知りませんでした
お手数をおかけいたしまして申し訳ありません
いくつものパターンを示してくださいまして
重ねて感謝いたします
通常版にて理想の変換ができました
今回教えて頂いたような知識を深めて、もっと便利にPCを使えるようになりたいと思います
勉強になりました ありがとうございます m(_ _)m
131nobodyさん
2014/02/09(日) 02:41:58.21ID:??? 質問させてください。
phpのpreg_match関数でwebページから文字列を抽出したいと考えています。
以下を使用して抽出していますが、改行が含まれると抽出ができませんでした。
$text = '/value="(.*?)" id="latest"/';
preg_match($text, $source, $matches);
$word = $matches[1];
色々調べて$textを以下のようにしてみましたが、うまくいきませんでした。
$text = '/value="(.*?)" id="latest"/s';
$text = '/value="([\s\S]*?)" id="latest"/';
$text = '/value="((\n|.)*?)" id="latest"/';
何故うまくいかないのかよくわかりません。
なにかアイデアはありませんでしょうか?
phpのpreg_match関数でwebページから文字列を抽出したいと考えています。
以下を使用して抽出していますが、改行が含まれると抽出ができませんでした。
$text = '/value="(.*?)" id="latest"/';
preg_match($text, $source, $matches);
$word = $matches[1];
色々調べて$textを以下のようにしてみましたが、うまくいきませんでした。
$text = '/value="(.*?)" id="latest"/s';
$text = '/value="([\s\S]*?)" id="latest"/';
$text = '/value="((\n|.)*?)" id="latest"/';
何故うまくいかないのかよくわかりません。
なにかアイデアはありませんでしょうか?
132nobodyさん
2014/02/09(日) 08:07:39.87ID:J9pikab5 俺なら
/value="([^"]*)"\s+id="latest"/
/value="([^"]*)"\s+id="latest"/
134nobodyさん
2014/02/09(日) 17:39:19.85ID:J9pikab5 PHPなんか触らないから分からないけど両端のすらすらが余計とかなんかね
136nobodyさん
2014/02/11(火) 10:03:59.12ID:??? PHPスレで聞いたほうが早いかも。原因が改行以外にある可能性も十分あるので
動かないサンプルコードをアップして見てもらえば確実に原因教えてもらえると思う。
動かないサンプルコードをアップして見てもらえば確実に原因教えてもらえると思う。
137nobodyさん
2014/02/11(火) 13:41:52.16ID:??? ↑$source に入るHTMLファイルも見ないと原因が分からない可能性アリ。
再帰と (?( ) yes|no) の組み合わせが楽しすぎる。もしかしたら宝の山かも。
マトリョーシカの中にダルマを入れられる感じ。
マトリョーシカの中にダルマを入れられる感じ。
139nobodyさん
2014/02/15(土) 18:56:47.98ID:??? 正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html#NOTINCLUDED
「調整中」
気付いてもらえたのかそうでないのかいまいち分からんす。
このサイトはあんまアテにしないほうが良さそうだ。
http://www.kt.rim.or.jp/~kbk/regex/regex.html#NOTINCLUDED
「調整中」
気付いてもらえたのかそうでないのかいまいち分からんす。
このサイトはあんまアテにしないほうが良さそうだ。
比較対象追加 ( >>125 ) | (?=ABC) \K ABC
( >>125 ) | (?=ABC) \K ...
Perl6 正規表現 I
http://dl.dropboxusercontent.com/u/16667824/perl6/AdventCalender/1/5.html
Perl6 正規表現 I
http://dl.dropboxusercontent.com/u/16667824/perl6/AdventCalender/1/5.html
Perl6::Overview::Rule
http://search.cpan.org/~lichtkind/Perl6-Doc-0.36/lib/Perl6/Doc/Overview/Rule.pod
[foo|bar]+
Perl6ではこれが正しい書き方になるらしい。初心者がハマりそう・・罠的な意味で。
先読み、戻り読みは書きにくくなった感が否めない。
文字クラスも加算、減算をしないときでも <> で囲う必要があるのはめんどくさい。
が、新しいオモチャとしては十分楽しめそう。ついでに英語も覚えてしまおう。
http://search.cpan.org/~lichtkind/Perl6-Doc-0.36/lib/Perl6/Doc/Overview/Rule.pod
[foo|bar]+
Perl6ではこれが正しい書き方になるらしい。初心者がハマりそう・・罠的な意味で。
先読み、戻り読みは書きにくくなった感が否めない。
文字クラスも加算、減算をしないときでも <> で囲う必要があるのはめんどくさい。
が、新しいオモチャとしては十分楽しめそう。ついでに英語も覚えてしまおう。
S05
http://feather.perl6.nl/syn/S05.html
> Last Modified: 11 Feb 2014, Version: 174
A05
http://search.cpan.org/dist/Perl6-Doc/share/Apocalypse/A05.pod
> Last Modified: 18 May 2006, Number: 5, Version: 7
perl6ではもはや正規表現ではないという意味を込めて 「regex」 と呼んでるらしい。
perl5の正規表現にあった 「ゴチャゴチャ感」 が綺麗に一掃されてる感がある。
:ratchet があるのは最高だなぁ。
http://feather.perl6.nl/syn/S05.html
> Last Modified: 11 Feb 2014, Version: 174
A05
http://search.cpan.org/dist/Perl6-Doc/share/Apocalypse/A05.pod
> Last Modified: 18 May 2006, Number: 5, Version: 7
perl6ではもはや正規表現ではないという意味を込めて 「regex」 と呼んでるらしい。
perl5の正規表現にあった 「ゴチャゴチャ感」 が綺麗に一掃されてる感がある。
:ratchet があるのは最高だなぁ。
145nobodyさん
2014/03/01(土) 19:39:32.33ID:n8n41uDi http://anago.2ch.net/test/read.cgi/applism/1393578532/139
http://anago.2ch.net/test/read.cgi/applism/1393578532/157
この書込の方を正規表現でNGにしたいと思っています。
条件は
最初の行とは限らないが、「・」で初める行がある。何文字かの後、改行
その次の行は空の行
この2セットを正規表現で表すにはどうすればいいでしょうか?
.*?・.*?\r\n\r\n
としてみましたがダメでした。
http://anago.2ch.net/test/read.cgi/applism/1393578532/157
この書込の方を正規表現でNGにしたいと思っています。
条件は
最初の行とは限らないが、「・」で初める行がある。何文字かの後、改行
その次の行は空の行
この2セットを正規表現で表すにはどうすればいいでしょうか?
.*?・.*?\r\n\r\n
としてみましたがダメでした。
147nobodyさん
2014/03/01(土) 20:45:21.19ID:n8n41uDi148nobodyさん
2014/03/02(日) 02:32:48.90ID:2i/vkXtz htmlに対してとかじゃなくログに合わせろと
(>>146)
(?:^|<br>) は分岐のバックトラックが残るから (?><br>|\A) としたほうが良さそう。
この2つは動作が完全なイコールではないので注意が必要、文頭が <br> だった場合に
絶対に \A がマッチ出来なくなるため。これが問題になることはほとんど無いだろうけど。
(?:^|<br>) は分岐のバックトラックが残るから (?><br>|\A) としたほうが良さそう。
この2つは動作が完全なイコールではないので注意が必要、文頭が <br> だった場合に
絶対に \A がマッチ出来なくなるため。これが問題になることはほとんど無いだろうけど。
150nobodyさん
2014/03/05(水) 08:18:57.21ID:??? (>>144)
S05
ttp://perlcabal.org/syn/S05.html
>Last Modified: 27 Feb 2014
Jeffrey Friedl
ttp://regex.info/
Jeffrey Friedl - 第3版のコード ※ CGIなので直リンは避けたほうが良い。
regex.info/listing.cgi?ed=3&p=all
第2刷に対する正誤表 - 詳説 正規表現 第3版
ttp://www.oreilly.co.jp/books/9784873113593/#errata0
Google Books 詳説 正規表現 ※ 立ち読み可能
ttps://www.google.co.jp/search?tbm=bks&hl=ja&q=%E8%A9%B3%E8%AA%AC%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
S05
ttp://perlcabal.org/syn/S05.html
>Last Modified: 27 Feb 2014
Jeffrey Friedl
ttp://regex.info/
Jeffrey Friedl - 第3版のコード ※ CGIなので直リンは避けたほうが良い。
regex.info/listing.cgi?ed=3&p=all
第2刷に対する正誤表 - 詳説 正規表現 第3版
ttp://www.oreilly.co.jp/books/9784873113593/#errata0
Google Books 詳説 正規表現 ※ 立ち読み可能
ttps://www.google.co.jp/search?tbm=bks&hl=ja&q=%E8%A9%B3%E8%AA%AC%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
151nobodyさん
2014/03/13(木) 06:24:42.94ID:??? ascii抜粋
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
152nobodyさん
2014/03/17(月) 17:00:03.12ID:???153nobodyさん
2014/03/21(金) 12:20:24.42ID:??? tes
154nobodyさん
2014/03/22(土) 00:49:43.59ID:??? windowsXP ショートカットのパス
---------
C:\WINDOWS\system32\cmd.exe /k C:\test.pl6
---------
/k は実行後にウインドウを閉じないオプション。
拡張子 pl6 を perl6.exe に関連付けしておく。
test.pl6 にperl6のテストコードを書いて実験する。
---------
C:\WINDOWS\system32\cmd.exe /k C:\test.pl6
---------
/k は実行後にウインドウを閉じないオプション。
拡張子 pl6 を perl6.exe に関連付けしておく。
test.pl6 にperl6のテストコードを書いて実験する。
155nobodyさん
2014/03/23(日) 15:15:41.32ID:??? #!/usr/bin/perl6
my $str;
$str := "AAABBBCCC";
say $str.trans( 'A'=>'a', 'B'=>'b', 'C'=>'c' );
say "\n"~$str;
---結果---
aaabbbccc
AAABBBCCC
my $str;
$str := "AAABBBCCC";
say $str.trans( 'A'=>'a', 'B'=>'b', 'C'=>'c' );
say "\n"~$str;
---結果---
aaabbbccc
AAABBBCCC
156nobodyさん
2014/03/26(水) 20:28:04.50ID:??? ### winXP で文字コードの 『et_EE.ISO8859-1』 を使えるようにする手順
!!! 試すときは仮想マシンを使うこと。環境が壊れて文字化けだらけになるため。 !!!
1、「コントロールパネル」 → 「地域と言語のオプション」
2、「日本語」 や 「日本」 と設定されている所を全て 「エストニア」 に設定する。
3、PC再起動
=> perl から et_EE.ISO8859-1 が使用可能になる。
順番が s z t u に変わったことを確認。ただ、 [a-z] で t 以降もマッチするのは変わらず。
[FreeBSD] - 2005/9/3 ( => FreeBSD4.10? )
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325
!!! 試すときは仮想マシンを使うこと。環境が壊れて文字化けだらけになるため。 !!!
1、「コントロールパネル」 → 「地域と言語のオプション」
2、「日本語」 や 「日本」 と設定されている所を全て 「エストニア」 に設定する。
3、PC再起動
=> perl から et_EE.ISO8859-1 が使用可能になる。
順番が s z t u に変わったことを確認。ただ、 [a-z] で t 以降もマッチするのは変わらず。
[FreeBSD] - 2005/9/3 ( => FreeBSD4.10? )
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325
157nobodyさん
2014/03/26(水) 22:02:12.05ID:??? FreeBSD - 2005/9/5
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325
[[ winXPで et_EE.ISO8859-1 を使う ]]
1、「コントロールパネル」 => 「地域と言語のオプション」
2、「日本」 「日本語」 を全て「エストニア」 に変更。
3、PC再起動
perlで s z t u の順になるのを確認。しかし [a-z] が t u 以降にもマッチするのは変わらなかった。
=> 順番が変わることによるトラブルを避けるために対策されている?
※ これをやると環境の一部がエストニア語で上書きされ日本語に戻せなくなるので
試すなら 「VM ware」 や 「Virtual PC」 等の仮想マシンで試しましょう。
2005/9/5 に問題報告がされているのでそれ以前にリリースされたFreeBSDを使って試せば
完全に再現出来る可能性大。そして 4.11で再現出来なくなっていれば対策が取られたということになる。
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325
[[ winXPで et_EE.ISO8859-1 を使う ]]
1、「コントロールパネル」 => 「地域と言語のオプション」
2、「日本」 「日本語」 を全て「エストニア」 に変更。
3、PC再起動
perlで s z t u の順になるのを確認。しかし [a-z] が t u 以降にもマッチするのは変わらなかった。
=> 順番が変わることによるトラブルを避けるために対策されている?
※ これをやると環境の一部がエストニア語で上書きされ日本語に戻せなくなるので
試すなら 「VM ware」 や 「Virtual PC」 等の仮想マシンで試しましょう。
2005/9/5 に問題報告がされているのでそれ以前にリリースされたFreeBSDを使って試せば
完全に再現出来る可能性大。そして 4.11で再現出来なくなっていれば対策が取られたということになる。
158nobodyさん
2014/03/30(日) 04:03:56.61ID:??? --------c:\test.pl-----------
use locale;
print +(sort grep /[a-z]/i, map { chr } 0..255), "\n";
--------c:\test.pl-----------
C:\>perl test.pl
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsSzZtTuUvVwWxXyY
C:\>perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread
-----------------------------------
↓これを使わなくても順番が変わった。
use POSIX qw(setlocale LC_ALL);
setlocale(LC_ALL, "et_EE.ISO8859-1");
コンパネで「エストニア」と指定しただけで「et_EE.ISO8859-1」は未指定の状態。
-----------------------------------
/[a-z]/i を /\w/ に変えると英字以外の文字も英字の間に
挟まっていることが確認出来る。
use locale;
print +(sort grep /[a-z]/i, map { chr } 0..255), "\n";
--------c:\test.pl-----------
C:\>perl test.pl
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsSzZtTuUvVwWxXyY
C:\>perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread
-----------------------------------
↓これを使わなくても順番が変わった。
use POSIX qw(setlocale LC_ALL);
setlocale(LC_ALL, "et_EE.ISO8859-1");
コンパネで「エストニア」と指定しただけで「et_EE.ISO8859-1」は未指定の状態。
-----------------------------------
/[a-z]/i を /\w/ に変えると英字以外の文字も英字の間に
挟まっていることが確認出来る。
159nobodyさん
2014/03/30(日) 04:24:51.20ID:??? --------c:\test.pl-----------
use locale; # これが無いと順番が変わらない
use POSIX qw(setlocale LC_ALL); # コメントアウトしても変化なし
setlocale(LC_ALL, "et_EE.ISO8859-1"); # コメントアウトしても変化なし
my $abc;
$abc = "STU";
$abc =~ s/[A-Z]/hit/g;
print $abc."\n";
--------c:\test.pl-----------
[結果] hithithit
順番が変わっていれば S にしかマッチしないはずだが3文字すべてに
マッチしている。
LC_ALL を LC_CTYPE や、 LANG などに変えたり、test.plを保存するときの
文字コードをutf-8からshift_jisに変えたりしても結果変わらず。
XPsp3+perl5.16.3の環境で S だけにマッチさせる手段は無いと思われる。
use locale; # これが無いと順番が変わらない
use POSIX qw(setlocale LC_ALL); # コメントアウトしても変化なし
setlocale(LC_ALL, "et_EE.ISO8859-1"); # コメントアウトしても変化なし
my $abc;
$abc = "STU";
$abc =~ s/[A-Z]/hit/g;
print $abc."\n";
--------c:\test.pl-----------
[結果] hithithit
順番が変わっていれば S にしかマッチしないはずだが3文字すべてに
マッチしている。
LC_ALL を LC_CTYPE や、 LANG などに変えたり、test.plを保存するときの
文字コードをutf-8からshift_jisに変えたりしても結果変わらず。
XPsp3+perl5.16.3の環境で S だけにマッチさせる手段は無いと思われる。
160nobodyさん
2014/03/30(日) 05:25:46.81ID:??? >>156
「辞書順」はロケールに依存するが「文字コード順」は文字コードに依存する、んじゃね?
文字集合の範囲指定が文字コード順と定義されているなら、
いくらロケール切り替えても文字コード切り替えない限り無意味だろう。
で、文字集合の範囲指定ってどっちだと定義されてるの?
「辞書順」はロケールに依存するが「文字コード順」は文字コードに依存する、んじゃね?
文字集合の範囲指定が文字コード順と定義されているなら、
いくらロケール切り替えても文字コード切り替えない限り無意味だろう。
で、文字集合の範囲指定ってどっちだと定義されてるの?
161nobodyさん
2014/03/30(日) 14:02:22.42ID:??? >>160
俺はロケールや文字コードの知識はほとんど無いんでよく分かってない。
↓は winXPsp3 + perl5.16.3 + ロケール = 「日本」 の環境での実験結果。
・ [ァ-ィ] が ア にマッチするか実験。( 文字コード順ならマッチしないはず )
----------------------------------------
use locale;
if ( "ア" =~/[ァ-ィ]/ ){ print "hit\n"; }
else { print "no hit\n"; };
----------------------------------------
結果: hit ( マッチしたので文字コード順ではない )
この環境での範囲指定は↓の順みたい。これはshift_jisの並び順とは違う。(これが辞書順?)
----------------------------------------
_0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZァアィ
スセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヲン
----------------------------------------
文字コードでなくロケールに依存するという発想は思い付かなかったわ、そっちの線で
また実験しながら遊んでみるよ、辞書順とやらも調べてみる。ヒントありがとう。
俺はロケールや文字コードの知識はほとんど無いんでよく分かってない。
↓は winXPsp3 + perl5.16.3 + ロケール = 「日本」 の環境での実験結果。
・ [ァ-ィ] が ア にマッチするか実験。( 文字コード順ならマッチしないはず )
----------------------------------------
use locale;
if ( "ア" =~/[ァ-ィ]/ ){ print "hit\n"; }
else { print "no hit\n"; };
----------------------------------------
結果: hit ( マッチしたので文字コード順ではない )
この環境での範囲指定は↓の順みたい。これはshift_jisの並び順とは違う。(これが辞書順?)
----------------------------------------
_0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZァアィ
スセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヲン
----------------------------------------
文字コードでなくロケールに依存するという発想は思い付かなかったわ、そっちの線で
また実験しながら遊んでみるよ、辞書順とやらも調べてみる。ヒントありがとう。
162nobodyさん
2014/03/31(月) 00:44:57.15ID:??? (>>156)
ついに [a-z] が t 以降にマッチしない動作の再現に成功!
et_EE.ISO8859-1 の代わりに et_EE.ISO8859-15 を使ったら再現出来ました!
今まで助言をくれたみなさんありがとう〜。自分一人じゃ絶対無理だった。
↓こちらの方々にも感謝〜
初心者もOK! FreeBSD質問スレッド その117
http://toro.2ch.net/test/read.cgi/unix/1380865524/938-954n
詳しい手順はもう少し調べて整理してから載せます。
ついに [a-z] が t 以降にマッチしない動作の再現に成功!
et_EE.ISO8859-1 の代わりに et_EE.ISO8859-15 を使ったら再現出来ました!
今まで助言をくれたみなさんありがとう〜。自分一人じゃ絶対無理だった。
↓こちらの方々にも感謝〜
初心者もOK! FreeBSD質問スレッド その117
http://toro.2ch.net/test/read.cgi/unix/1380865524/938-954n
詳しい手順はもう少し調べて整理してから載せます。
163nobodyさん
2014/04/01(火) 22:34:44.19ID:???164nobodyさん
2014/04/12(土) 17:21:41.17ID:??? 2ch .scに移転しました。
正規表現道場 Part2
http://nozomi.2ch .sc/test/read.cgi/php/1348048723/l50
■ 2ch.netの問題点
・ 2chscがNGワードになってるので正規表現をスレに貼るのに支障が出る。何より言論統制はイクナイ。
・ 管理人が今後どう動くか予測が付かない。
自暴自棄になりIPや書き込み履歴を大公開して逃走する可能性すらある。会社IPの人は注意。
正規表現道場 Part2
http://nozomi.2ch .sc/test/read.cgi/php/1348048723/l50
■ 2ch.netの問題点
・ 2chscがNGワードになってるので正規表現をスレに貼るのに支障が出る。何より言論統制はイクナイ。
・ 管理人が今後どう動くか予測が付かない。
自暴自棄になりIPや書き込み履歴を大公開して逃走する可能性すらある。会社IPの人は注意。
165nobodyさん
2014/04/12(土) 20:53:07.28ID:kZRku0LV もうこっちに帰ってくるなよ
166nobodyさん
2014/04/15(火) 11:21:18.41ID:qQPWwAKL 使用しているのはYahoo! Pipesのregexです
http://d.hatena.ne.jp/dacs/20080422/1208868051
○○/△△&#xd;[□□
という文字列から△△だけを抜き出したくて、色々試してみているのですがどうもうまくいきません
".*/" -> replace -> ""
"\&#xd;.+" -> replace -> ""
だと思うのですが、何か間違いがあるのでしょうか?
ちなみに
"[.+" -> replace -> ""
も試してみましたがダメでした
http://d.hatena.ne.jp/dacs/20080422/1208868051
○○/△△&#xd;[□□
という文字列から△△だけを抜き出したくて、色々試してみているのですがどうもうまくいきません
".*/" -> replace -> ""
"\&#xd;.+" -> replace -> ""
だと思うのですが、何か間違いがあるのでしょうか?
ちなみに
"[.+" -> replace -> ""
も試してみましたがダメでした
167nobodyさん
2014/04/15(火) 20:38:11.07ID:CfZz5H/X Yahoo! Pipesの仕様なんて知らんが
文字列の開始も終わりも指定してないということは
.*/で一番最後の/までが対象として消える可能性はある
文字列の開始も終わりも指定してないということは
.*/で一番最後の/までが対象として消える可能性はある
169nobodyさん
2014/05/08(木) 02:37:21.25ID:??? ファイル検索ツールでパスを入力する時、「\」「/」を入れると候補が0になってしまいます
d:\\abc\\123\\ のように入力しているのですが、間違っていますか?
d:\\abc\\123\\ のように入力しているのですが、間違っていますか?
170nobodyさん
2014/05/08(木) 03:20:39.96ID:Zyar7s4i そのファイル検索ツールのところで聞けばー
171nobodyさん
2014/05/22(木) 01:25:49.65ID:??? sc連投規制中なう。
172nobodyさん
2014/05/22(木) 14:43:31.27ID:??? (sc>>212)
>qr/\"((?:\\[\\\"]|.)*?)\"/
> これはよっぽど自信がないと書けない書き方だ。
今考えると弾たんは単に2文字否定の作り方を知らなかっただけだな・・。
知ってたらこんなあやふやなものを作ろうなんて思わないし。
早さに拘るのに早い正規表現の作り方を知らないというちょっと残念な弾たん。
他の正規表現を見ても正規表現自体のスキルは高くない。
なんでもこなすオールラウンダーだから薄く広くになるんだろうな。
しかしこの程度の正規表現スキルでcpanのモジュール作って大丈夫なんだろうか。
探せばバグが出てきそうな予感。
>qr/\"((?:\\[\\\"]|.)*?)\"/
> これはよっぽど自信がないと書けない書き方だ。
今考えると弾たんは単に2文字否定の作り方を知らなかっただけだな・・。
知ってたらこんなあやふやなものを作ろうなんて思わないし。
早さに拘るのに早い正規表現の作り方を知らないというちょっと残念な弾たん。
他の正規表現を見ても正規表現自体のスキルは高くない。
なんでもこなすオールラウンダーだから薄く広くになるんだろうな。
しかしこの程度の正規表現スキルでcpanのモジュール作って大丈夫なんだろうか。
探せばバグが出てきそうな予感。
173nobodyさん
2014/05/22(木) 15:18:43.78ID:??? 正規表現のスキル自体とモジュール作成能力には直接的な相関関係はないからなあ・・・
174nobodyさん
2014/05/22(木) 16:18:04.88ID:??? (‥ )フーン
175nobodyさん
2014/05/22(木) 16:49:22.13ID:??? そういう指摘するだけでモノ作ったり貢献してなさそうなお前はもっと駄目な人間だから安心しろ。
弾はなんだかんだ色々作ってるし色々な方面に貢献してる。
弾はなんだかんだ色々作ってるし色々な方面に貢献してる。
176nobodyさん
2014/05/22(木) 18:11:53.77ID:??? 指摘することも立派な貢献だと思いますよ。現に指摘によって処理時間が半分以下になってますし。
177nobodyさん
2014/05/23(金) 17:54:18.09ID:??? まだ連投規制が解除されないなう
## m//
キャッシュを保持してない状態では空文字列にマッチする。
うっかりするとバグの原因になり得る。
## m//
キャッシュを保持してない状態では空文字列にマッチする。
うっかりするとバグの原因になり得る。
178nobodyさん
2014/05/23(金) 19:00:28.59ID:??? .scの連投規制は俺も食らったけど(専ブラだと「書き込めたかも…」で書けてない状態)、
Webブラウザで投稿したらBOT疑惑なのでCapchaしろになってそれで解除できた。
URLを貼りまくって連投規制になった場合は知らん。
Webブラウザで投稿したらBOT疑惑なのでCapchaしろになってそれで解除できた。
URLを貼りまくって連投規制になった場合は知らん。
179nobodyさん
2014/05/23(金) 19:22:48.54ID:??? >>178
俺の場合は「連続投稿は禁止されています。Error!」って出るだけ。
普通に連続投稿が原因で規制食らってるみたいだからもうダメかも分からんね。
人が少ないから自然に独り言みたいになるのにそれで規制されたら
ますます人少なくなるなw
俺の場合は「連続投稿は禁止されています。Error!」って出るだけ。
普通に連続投稿が原因で規制食らってるみたいだからもうダメかも分からんね。
人が少ないから自然に独り言みたいになるのにそれで規制されたら
ますます人少なくなるなw
180nobodyさん
2014/05/23(金) 20:03:59.73ID:Hym2JLxi たらこテョンねるの話はたらこテョンねるでやれ
181nobodyさん
2014/05/23(金) 22:52:00.36ID:??? パールを使った正規表現
http://omatomen.net/archives/1002062987.html
http://omatomen.net/archives/1002062987.html
182nobodyさん
2014/05/24(土) 02:35:30.04ID:??? >>2 正規表現メモ
(?num) の説明文にある・・
-------------------
(\()?[^()]+(?(1)\))
-------------------
これは (?num) とはまったく関係ない正規表現。ただの条件文。
(?num) の説明文にある・・
-------------------
(\()?[^()]+(?(1)\))
-------------------
これは (?num) とはまったく関係ない正規表現。ただの条件文。
183nobodyさん
2014/05/24(土) 15:06:27.80ID:??? >>182
----------------------------
(?(R)...) PCREで、再帰的パターンの開始を示します。
<(?:(?(R)\\d++|[^<>]*+)|(?R))*>
----------------------------
説明文は間違い。これは条件式の条件。\\d は \d の間違い。
perldoc.jp
http://perldoc.jp/docs/perl/5.14.1/perlre.pod
(?(condition)yes-pattern|no-pattern) の項目を参照。
----------------------------
(?(R)...) PCREで、再帰的パターンの開始を示します。
<(?:(?(R)\\d++|[^<>]*+)|(?R))*>
----------------------------
説明文は間違い。これは条件式の条件。\\d は \d の間違い。
perldoc.jp
http://perldoc.jp/docs/perl/5.14.1/perlre.pod
(?(condition)yes-pattern|no-pattern) の項目を参照。
184nobodyさん
2014/05/27(火) 02:44:28.34ID:??? 詳説 正規表現のAmazon値 (1年前との比較)
・古本
初版 &nbsp;500円 → 1998円
2版 1600円 → 3150円
3版 4000円 → 3709円
・新品
3版 5184円
Amazon - "正規表現"
http://www.amazon.co.jp/s/field-keywords=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
・古本
初版 &nbsp;500円 → 1998円
2版 1600円 → 3150円
3版 4000円 → 3709円
・新品
3版 5184円
Amazon - "正規表現"
http://www.amazon.co.jp/s/field-keywords=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
185nobodyさん
2014/05/27(火) 03:16:35.15ID:??? 文字参照の処理、間違えてますよ > 2ch.net
186nobodyさん
2014/05/27(火) 03:43:16.09ID:??? ttp://cpansearch.perl.org/src/DANKOGAI/Unicode-Char-0.02/lib/Unicode/Char.pm
↓ ^ か \A 忘れてね?
------------------------
$method =~ s/.*:://o;
------------------------
↓ ^ か \A 忘れてね?
------------------------
$method =~ s/.*:://o;
------------------------
187nobodyさん
2014/05/27(火) 03:49:35.83ID:??? ----------------------------------------------------------
my ($hex, $name) = ($line =~ /^([0-9A-Fa-f]+)\s+(.*)/);
next if $name =~ /[a-z]/; # range, not character
----------------------------------------------------------
2行目だけ小文字に限定されてる。これで良いのか悪いのかは分からないが。
my ($hex, $name) = ($line =~ /^([0-9A-Fa-f]+)\s+(.*)/);
next if $name =~ /[a-z]/; # range, not character
----------------------------------------------------------
2行目だけ小文字に限定されてる。これで良いのか悪いのかは分からないが。
188nobodyさん
2014/05/27(火) 14:20:55.14ID:??? ttp://cpansearch.perl.org/src/DANKOGAI/Lingua-JA-Numbers-0.04/lib/Lingua/JA/Numbers.pm
-----
せっかく [eE] と書いてるのに /i
= ($num =~ /([+-])?(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?/io);
-----
ちゃんと動くんだろうけどアンカー付けないのが気持ち悪い。
$int =~ s/(.*)(.{48})\z/$2/o;
-----
これミスでね? [k|g]
if ($style =~ /(?:romaji|[k|g]ana)$/){
-----
せっかく [eE] と書いてるのに /i
= ($num =~ /([+-])?(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?/io);
-----
ちゃんと動くんだろうけどアンカー付けないのが気持ち悪い。
$int =~ s/(.*)(.{48})\z/$2/o;
-----
これミスでね? [k|g]
if ($style =~ /(?:romaji|[k|g]ana)$/){
189nobodyさん
2014/05/27(火) 14:23:03.78ID:??? 本人に直接言う勇気がないらしい。まこと残念な人である
皆はこうならぬように
皆はこうならぬように
190nobodyさん
2014/05/27(火) 14:28:03.82ID:??? 今度は大文字限定。
$ja =~ tr/[G-Z]//d;
ITPro: tr///d
http://itpro.nikkeibp.co.jp/article/Reference/20080930/315784/
$ja =~ tr/[G-Z]//d;
ITPro: tr///d
http://itpro.nikkeibp.co.jp/article/Reference/20080930/315784/
191nobodyさん
2014/05/27(火) 14:50:18.14ID:??? あれ、/o が使われてる。なんでapache logのltsv変換には
使われてなかったんだろう。ああいう時こそ効果的なのに。
使われてなかったんだろう。ああいう時こそ効果的なのに。
192nobodyさん
2014/05/27(火) 15:43:22.68ID:??? ■ combined2ltsv.pl の re で /o の有無をタイム計測
/o なし
12724/s
/o あり
31689/s
/o あり は2.5倍早い。これは報告したほうがいいかも。
/o なし
12724/s
/o あり
31689/s
/o あり は2.5倍早い。これは報告したほうがいいかも。
193nobodyさん
2014/05/27(火) 16:02:40.01ID:??? (>>186)
これに /o がついてるとなんか笑ってしまうw
余談追加。俺は報告なんかしないんで報告したい人がいたらしてね。
小飼 弾が手負いのうちに容赦なくツッコミを入れておく
http://akiba.geocities.jp/hp20140401/2014/006.html
これに /o がついてるとなんか笑ってしまうw
余談追加。俺は報告なんかしないんで報告したい人がいたらしてね。
小飼 弾が手負いのうちに容赦なくツッコミを入れておく
http://akiba.geocities.jp/hp20140401/2014/006.html
194nobodyさん
2014/05/29(木) 03:21:04.45ID:???195nobodyさん
2014/05/29(木) 16:45:47.77ID:??? 神戸大:オートマトン
ttp://kurt.scitec.kobe-u.ac.jp/~kikyo/lec/07/automaton/k5.pdf
行列の次は集合か・・もう忘れたよ・・覚えたことないけど。
ttp://kurt.scitec.kobe-u.ac.jp/~kikyo/lec/07/automaton/k5.pdf
行列の次は集合か・・もう忘れたよ・・覚えたことないけど。
196nobodyさん
2014/05/30(金) 01:37:35.60ID:??? 関西学院大学: 集合
http://www.kwansei.ac.jp/hs/z90010/sugaku1/kakuritu/syugo/set.htm
とっても分かりやすい。・・あれ?これ大学でやる内容か?中がっ(ry
http://www.kwansei.ac.jp/hs/z90010/sugaku1/kakuritu/syugo/set.htm
とっても分かりやすい。・・あれ?これ大学でやる内容か?中がっ(ry
197nobodyさん
2014/05/30(金) 01:52:56.08ID:??? ↑ /hs/ = ハイスクールでした。
198nobodyさん
2014/05/30(金) 06:37:19.19ID:??? Q、 perlの正規表現では \A\z == ε である。では、 ??? == φ の ??? は何になるか。
199nobodyさん
2014/05/30(金) 19:16:27.41ID:??? if( () =~ "" ){ print "hit\n"; } else { print "no\n"; };
結果 hit
答え、なし
結果 hit
答え、なし
200nobodyさん
2014/05/30(金) 21:43:37.74ID:??? () と "" を比較して no を返す方法はあるか。( φとεの比較 )
() eq ""
() == ""
"" eq undef
"" == undef
() eq undef
() == undef
すべてtrueが返る。
() eq ""
() == ""
"" eq undef
"" == undef
() eq undef
() == undef
すべてtrueが返る。
201nobodyさん
2014/05/30(金) 22:31:10.55ID:??? 弾たん : perl - にも真偽値は存在する
http://blog.livedoor.jp/dankogai/archives/51268304.html
ちなみにブログのトップではGoogle Chromecastをボロクソに叩きつつ、Chromecastへのamazonアフィを
張るというすご技を展開されております。
こういう人相手に>>193を報告しにいってもスルーされるだけだと思うよ。カネにならないからね。
http://blog.livedoor.jp/dankogai/archives/51268304.html
ちなみにブログのトップではGoogle Chromecastをボロクソに叩きつつ、Chromecastへのamazonアフィを
張るというすご技を展開されております。
こういう人相手に>>193を報告しにいってもスルーされるだけだと思うよ。カネにならないからね。
202nobodyさん
2014/06/01(日) 03:26:43.94ID:??? てすてす &
204nobodyさん
2014/06/01(日) 10:29:53.68ID:??? こういう陰口叩くやつよりマシ
205nobodyさん
2014/06/06(金) 06:34:46.02ID:??? test
206nobodyさん
2014/06/06(金) 06:36:44.82ID:??? test
207nobodyさん
2014/06/06(金) 06:39:17.80ID:qyn3RpL3 test
208nobodyさん
2014/06/09(月) 20:39:55.26ID:Xlk9Lxk9 javascriptでhtmlタグ内以外での検索をしようとしていますが、上手く行きません。お助け下さい。
lat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m");
body.match(reg);
console.log(reg.index);
13が返って欲しいのですが、undifinedになります。
lat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m");
body.match(reg);
console.log(reg.index);
13が返って欲しいのですが、undifinedになります。
209nobodyさん
2014/06/10(火) 15:56:17.87ID:??? 当スレは中級者以上向けになっているのでこちらへ。
Regular Expression(正規表現) Part12
http://peace.2ch.net/test/read.cgi/tech/1387257592/
jsならieか否か、または両方かも書いたほうが良いでしょう。
Regular Expression(正規表現) Part12
http://peace.2ch.net/test/read.cgi/tech/1387257592/
jsならieか否か、または両方かも書いたほうが良いでしょう。
210nobodyさん
2014/06/10(火) 18:29:25.24ID:pkqjoeBF >>209
ご誘導ありがとうございます!
ご誘導ありがとうございます!
211nobodyさん
2014/06/19(木) 11:10:47.66ID:??? http://home.hiroshima-u.ac.jp/fujita/Class/Kisoron/set.pdf
計算機基礎論 - set.pdf
計算機基礎論 - set.pdf
212nobodyさん
2014/06/21(土) 14:09:56.93ID:???213nobodyさん
2014/06/25(水) 15:49:19.16ID:???214nobodyさん
2014/06/25(水) 16:17:08.28ID:??? このスレって誰かの日記帳スレだったの?
215nobodyさん
2014/06/25(水) 16:21:27.13ID:??? 俺のメモ帳だけど?
216nobodyさん
2014/06/25(水) 16:26:13.98ID:??? ならコテ付けろ
217nobodyさん
2014/06/26(木) 14:34:09.08ID:??? 確率 1/10 で当たるんなら 10 回やれば当たる?
http://www.math.kobe-u.ac.jp/HOME/saji/mathyomi/probability.html
確率は正規表現の処理効率向上に使う。
"|" による分岐で確率の高いほうを前に置いたほうが早くなるetc..
http://www.math.kobe-u.ac.jp/HOME/saji/mathyomi/probability.html
確率は正規表現の処理効率向上に使う。
"|" による分岐で確率の高いほうを前に置いたほうが早くなるetc..
218nobodyさん
2014/06/27(金) 22:19:38.37ID:??? ## 確率の実験
my $cnt=0;
for (my $i=0; $i<1000000; $i++){
if ( int(rand(3)) == 0 || int(rand(3)) == 2 || int(rand(3)) == 1)
{
$cnt++;
}# if
} #for
print "$cnt\n";
__END__
&& ・・・ A∧B
|| ・・・ A∨B
my $cnt=0;
for (my $i=0; $i<1000000; $i++){
if ( int(rand(3)) == 0 || int(rand(3)) == 2 || int(rand(3)) == 1)
{
$cnt++;
}# if
} #for
print "$cnt\n";
__END__
&& ・・・ A∧B
|| ・・・ A∨B
219nobodyさん
2014/06/29(日) 14:17:12.43ID:??? 傘スレの無能っぷりが酷い。正規表現作ってやりゃ済む話じゃないか。
220nobodyさん
2014/07/07(月) 04:54:48.68ID:??? \Gを知らないのか使えないのか知らんけど・・
テキストエディタの正規表現には関わりたくないや。
テキストエディタの正規表現には関わりたくないや。
222nobodyさん
2014/07/07(月) 07:13:43.90ID:??? \G(?:@command|,)
タダでスキルアップさせてやったんだから文句言うなっしー。
タダでスキルアップさせてやったんだから文句言うなっしー。
223nobodyさん
2014/07/16(水) 02:27:41.11ID:???224nobodyさん
2014/07/28(月) 11:12:01.30ID:tZb2oMPI ★2ch勢いランキングサイトリスト★
◎ +ニュース
・ 2NN
・ 2chTimes
◎ +ニュース新着
・ 2NN新着
・ Headline BBY
◎ +ニュース他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
◎ 実況込み
・ 2勢
・ READ2CH
・ i-ikioi
※ 要サイト名検索
◎ +ニュース
・ 2NN
・ 2chTimes
◎ +ニュース新着
・ 2NN新着
・ Headline BBY
◎ +ニュース他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
◎ 実況込み
・ 2勢
・ READ2CH
・ i-ikioi
※ 要サイト名検索
225nobodyさん
2014/09/28(日) 01:14:49.25ID:??? > ※ ヤフーのHTMLには javascript が使われており、正規表現がコードの一部に誤爆します。
・・・ならテストデータ変えろよと。
・・・ならテストデータ変えろよと。
226nobodyさん
2014/10/11(土) 01:16:14.20ID:??? テストし直すのが面倒でねぇ・・。
227nobodyさん
2014/10/25(土) 17:29:59.52ID:???228nobodyさん
2014/11/29(土) 17:23:33.57ID:??? preg_replaceで文章内に<br /><br />が出現した以降の文字をすべて削除するのはどうすればいいですか?
231nobodyさん
2014/12/01(月) 14:46:21.20ID:??? 「正規表現」などを使う場合には、【regex railroad diagram】を利用すれば、とても分かりやすく「図式化」してくれます
http://plus.appgiga.jp/masatolan/2014/10/31/54305/
http://plus.appgiga.jp/masatolan/2014/10/31/54305/
2014/12/13(土) 19:13:38.56ID:???
2ch専ブラで「1文字だけしか書かれていないレス」をNG処理する場合はどういった表現をすればいいのでしょうか
2014/12/13(土) 20:39:31.42ID:???
概出
2014/12/13(土) 20:51:51.46ID:???
そこをなんとか
235nobodyさん
2014/12/19(金) 13:42:01.95ID:fItp7j1V もとかりやゆいか
236nobodyさん
2014/12/23(火) 07:55:27.87ID:vHmDJqQI 正規表現で電話番号を確認するにはどうしたらいいですか?
固定番号
携帯番号
フリーダイヤル
国際番号
といったものがあるのでわかりません。(緊急ダイヤル系は無視して構いません)
どなたか正規表現を教えてください
固定番号
携帯番号
フリーダイヤル
国際番号
といったものがあるのでわかりません。(緊急ダイヤル系は無視して構いません)
どなたか正規表現を教えてください
237nobodyさん
2014/12/23(火) 10:39:05.73ID:??? 電話番号とは何かって質問はスレ違い。
自分の定義する電話番号はこうですって(正規表現以外の方法で)提示してください。
自分の定義する電話番号はこうですって(正規表現以外の方法で)提示してください。
239nobodyさん
2014/12/23(火) 13:12:39.81ID:??? 緊急ダイヤル系は無視して構いませんって、つまりそれが何だか含めた電話番号とは何ぞやを
考慮して回答しろって書いてあるじゃねーか。
しるかそんなモン。
考慮して回答しろって書いてあるじゃねーか。
しるかそんなモン。
240nobodyさん
2014/12/23(火) 13:31:46.62ID:???241nobodyさん
2014/12/23(火) 13:54:19.46ID:vHmDJqQI242nobodyさん
2015/02/03(火) 02:15:25.40ID:??? データから例をあげないと書きようがないよね
ハイフンあったりなかったり、それら含めて全部なのか・・・
ハイフンあったりなかったり、それら含めて全部なのか・・・
243nobodyさん
2015/02/09(月) 08:34:16.86ID:??? 1.文字列の末尾にある数字を1〜2桁まで抽出したい(末尾に1文字までなら数字以外が入っても構わない)
2.抽出した数字が1桁の場合は先頭に「0」を足して二桁に変えたい
これを正規表現1行で行いたいのですが
検索:.*?(\d{1,2})(\D{0,1})$
置換:\1
これで1つ目はいけたんですが、さらに2つ目の内容を正規表現1行で行うことは可能でしょうか?
2.抽出した数字が1桁の場合は先頭に「0」を足して二桁に変えたい
これを正規表現1行で行いたいのですが
検索:.*?(\d{1,2})(\D{0,1})$
置換:\1
これで1つ目はいけたんですが、さらに2つ目の内容を正規表現1行で行うことは可能でしょうか?
244nobodyさん
2015/02/20(金) 16:08:02.61ID:s+oB9mxD245nobodyさん
2015/02/20(金) 20:10:32.19ID:kYODqEh/ アフィ注意
246nobodyさん
2015/02/22(日) 12:03:22.28ID:??? 間違いあるしまとめすぎてて意味不明だしゴミだ。
247nobodyさん
2015/02/22(日) 14:01:19.31ID:q7pjx80v >>244
しっかり纏められて助かります^^b ありがとう!
しっかり纏められて助かります^^b ありがとう!
248nobodyさん
2015/02/23(月) 08:57:45.46ID:??? ゴミの分際で広告主張しすぎなんだよ
249nobodyさん
2015/02/23(月) 11:36:18.61ID:b/xiRyE3 >>244
ありがとう!!!分かりやすい!!
ありがとう!!!分かりやすい!!
250nobodyさん
2015/02/26(木) 16:01:00.90ID:??? > \G 直前の一致文字列の末尾
こう覚えちゃう人多いんだよねぇ。こういうサイトが嘘広めてるんだろうな。
こう覚えちゃう人多いんだよねぇ。こういうサイトが嘘広めてるんだろうな。
251nobodyさん
2015/03/01(日) 14:12:05.46ID:X4Lz0t7X お前はいったい何なんだ?
必死に勉強したわけでもなく、必死に働いたわけでもなく
何も築かず、耐えず、乗り越えず、ただダラダラ過ごし
自分の都合の良い妄想だけを垂れ流す。
お前は今のゴミみたいな人生を、今は仮、本当の自分を使っていないだけ
そう飽きず言い続け、結局はそのまま死ぬ
最底辺キモヲタで底辺人生の今が本物であることに、そろそろ気が付こうぜ!
必死に勉強したわけでもなく、必死に働いたわけでもなく
何も築かず、耐えず、乗り越えず、ただダラダラ過ごし
自分の都合の良い妄想だけを垂れ流す。
お前は今のゴミみたいな人生を、今は仮、本当の自分を使っていないだけ
そう飽きず言い続け、結局はそのまま死ぬ
最底辺キモヲタで底辺人生の今が本物であることに、そろそろ気が付こうぜ!
252nobodyさん
2015/06/05(金) 01:32:33.59ID:tqx/3RmH 改行や余計な文字が入ってる場合のNGはどう書けば良いでしょうか?
例です
V
i からきますた!
p
この[V∨vv]→[IIii]→[PPpp]→NGを完成させたいです
例です
V
i からきますた!
p
この[V∨vv]→[IIii]→[PPpp]→NGを完成させたいです
253nobodyさん
2015/06/05(金) 08:25:50.18ID:??? [V∨vv][^IIii]*[IIii][^PPpp]*[PPpp]
尚、テストはしてない
尚、テストはしてない
254nobodyさん
2015/06/06(土) 08:05:00.05ID:O2gCKwON255nobodyさん
2015/10/30(金) 17:13:18.79ID:??? 青空にある文章で章ごとに一、二・・・百八十三と数字
がついているのですが、それを一括して置換するにはどうすれば
いいでしょうか?漢数字の間には改行がついています。
がついているのですが、それを一括して置換するにはどうすれば
いいでしょうか?漢数字の間には改行がついています。
256nobodyさん
2015/11/19(木) 21:03:58.90ID:XTDkfpTP 質問よろしいでしょうか?
一文字のみのレスを正規表現で指定するにはどうすればよいでしょうか
一文字のみのレスを正規表現で指定するにはどうすればよいでしょうか
257nobodyさん
2015/11/19(木) 21:47:15.16ID:??? ^ ?. ?$
258nobodyさん
2015/11/20(金) 00:28:25.04ID:Hxd/FqIh マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,,
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,,
259nobodyさん
2016/01/16(土) 11:21:13.24ID:??? 「ちな」をNGにしたいけど、「ありがちな」や「ちなみに」はNG対象外としたい
ちな(!?み)
これで「ちなみに」は対象外にできたんだが、「ありがちな」も同時に対象外にするにはどうしたらいい?
ちな(!?み)
これで「ちなみに」は対象外にできたんだが、「ありがちな」も同時に対象外にするにはどうしたらいい?
260nobodyさん
2016/01/16(土) 12:14:55.25ID:??? 検索したけど
261nobodyさん
2016/01/16(土) 20:48:37.60ID:??? 「ちなみに」の略として「ちな」を使ってるのを想定してるとゲスパーするが、
「ちな」を含む言葉なんて沢山あるから、それらを考慮し始めるとキリが無い
行頭にある場合とかで妥協しときなせ
「ちな」を含む言葉なんて沢山あるから、それらを考慮し始めるとキリが無い
行頭にある場合とかで妥協しときなせ
262nobodyさん
2016/01/16(土) 22:04:58.93ID:??? >>261
ご明察
100%問題なくNGにできるとは思ってなくて、NGの誤爆が減ればいいなって感じで質問してみた
そもそも、 "AB" には一致して "xyAB" には一致しない正規表現って書けるんだろうか
俺の実力じゃよく分からんかった
ご明察
100%問題なくNGにできるとは思ってなくて、NGの誤爆が減ればいいなって感じで質問してみた
そもそも、 "AB" には一致して "xyAB" には一致しない正規表現って書けるんだろうか
俺の実力じゃよく分からんかった
264nobodyさん
2016/01/17(日) 06:55:43.35ID:???265nobodyさん
2017/01/17(火) 09:29:39.40ID:??? 変数の後に数字つける方法がわからん
(\d\d) (\d\d) → \1\212345 →NG
(\d\d) (\d\d) → \1\2\x312345 →NG
先読み使えるの?
手元のエディタは変数の後数字が来るとバグる
(\d\d) (\d\d) → \1\212345 →NG
(\d\d) (\d\d) → \1\2\x312345 →NG
先読み使えるの?
手元のエディタは変数の後数字が来るとバグる
266nobodyさん
2017/01/17(火) 15:53:00.35ID:??? >>265
どういう環境なのか知らんので一般的な回答だけど
正規表現内の後方参照では、\1,\2の替わりに\k<1>,\k<2>(または\k'1', \k'2')と書ける
$1,$2の場合は、${1},${2}と書ける(jscriptの場合は、$01,$02とする)
【例】
文字列: 112
正規表現:^(\d)\k<1>2 (またはキャプチャの括弧を使って ^(\d)(\1)2 としても良い)
部分文字列の参照:${1}2 (jscriptなら$012) で、12となる
どういう環境なのか知らんので一般的な回答だけど
正規表現内の後方参照では、\1,\2の替わりに\k<1>,\k<2>(または\k'1', \k'2')と書ける
$1,$2の場合は、${1},${2}と書ける(jscriptの場合は、$01,$02とする)
【例】
文字列: 112
正規表現:^(\d)\k<1>2 (またはキャプチャの括弧を使って ^(\d)(\1)2 としても良い)
部分文字列の参照:${1}2 (jscriptなら$012) で、12となる
267nobodyさん
2017/01/17(火) 16:04:16.64ID:???268nobodyさん
2017/02/09(木) 17:46:47.19ID:N/9FjWal すいません質問です
言語…sakuraeditor
↓次のような文章を小さい順に並べたい、この部分 (パイプABC001)
|ABC001
|の次は必ずアルファベットになります
・文章 (例)
カメラ|ABC001
レンズ|BCD005
バッテリー|CDV003|不良あり
…
言語…sakuraeditor
↓次のような文章を小さい順に並べたい、この部分 (パイプABC001)
|ABC001
|の次は必ずアルファベットになります
・文章 (例)
カメラ|ABC001
レンズ|BCD005
バッテリー|CDV003|不良あり
…
269nobodyさん
2017/02/09(木) 18:10:57.95ID:??? 正規表現と関係ない話・質問は他スレへどうぞ。
270nobodyさん
2017/03/27(月) 09:40:52.12ID:??? 「|」←この縦棒の入力の仕方教えて
スマホでATOCでの入力方法が知りたいです
記号全部見たけど該当するのが見つけられませんでした
スマホでATOCでの入力方法が知りたいです
記号全部見たけど該当するのが見つけられませんでした
271nobodyさん
2017/03/27(月) 18:25:24.06ID:XOJkSB5o272nobodyさん
2017/03/28(火) 00:50:00.78ID:???273nobodyさん
2017/04/05(水) 21:00:53.79ID:??? 教えて下さい!!
テキストデータにある電話番号部分を消したいのですがどのようにしたらいいでしょうか?
氏名 3桁の市内局番 ハイフン 4桁の番号 住所
というデータです。
テキストエディタを使って正規表現でハイフン付きの電話番号部分だけを消したいのです。
よろしくお願いします。
テキストデータにある電話番号部分を消したいのですがどのようにしたらいいでしょうか?
氏名 3桁の市内局番 ハイフン 4桁の番号 住所
というデータです。
テキストエディタを使って正規表現でハイフン付きの電話番号部分だけを消したいのです。
よろしくお願いします。
274nobodyさん
2017/04/06(木) 05:24:35.99ID:??? JavaScriptで作った。
空白は半角空白のことです。
「空白数字3つ空白-空白数字4つ空白」の部分を、1つの半角空白に置換する。
もし違っているなら、データの入出力を、正確に書いてくれ
入力
東京太郎 123 - 4567 東京都なんたら
大阪次郎 123 - 4567 大阪府なんたら
出力
東京太郎 東京都なんたら
大阪次郎 大阪府なんたら
var str = "東京太郎 123 - 4567 東京都なんたら" + "\n" +
"大阪次郎 123 - 4567 大阪府なんたら"
var str2 = str.replace(/ \d{3} \- \d{4} /g, " ");
console.log(str2);
空白は半角空白のことです。
「空白数字3つ空白-空白数字4つ空白」の部分を、1つの半角空白に置換する。
もし違っているなら、データの入出力を、正確に書いてくれ
入力
東京太郎 123 - 4567 東京都なんたら
大阪次郎 123 - 4567 大阪府なんたら
出力
東京太郎 東京都なんたら
大阪次郎 大阪府なんたら
var str = "東京太郎 123 - 4567 東京都なんたら" + "\n" +
"大阪次郎 123 - 4567 大阪府なんたら"
var str2 = str.replace(/ \d{3} \- \d{4} /g, " ");
console.log(str2);
276nobodyさん
2017/04/11(火) 18:43:36.70ID:LhfrERPJ バルタン星人
278nobodyさん
2017/05/11(木) 12:35:34.54ID:fXvBVhsh Google Apps Scriptなんですが
ここの時系列データ(日付〜出来高まで)抽出したいのだけど、上手くいきません。
ttps://jp.investing.com/indices/vn-historical-data
var myRe = /<td.*>(\d{1,2}月\d{1,2}日\d{4}年)<\/td><td.*>([\d,]+(\.\d+)?)<\/td><td>([\d,]+(\.\d+)?)<\/td>
<td>([\d,]+(\.\d+)?)<\/td><td>([\d,]+(\.\d+)?)<\/td><td.*>([\d,]+(\.\d+)?)k<\/td>/g;
ここの時系列データ(日付〜出来高まで)抽出したいのだけど、上手くいきません。
ttps://jp.investing.com/indices/vn-historical-data
var myRe = /<td.*>(\d{1,2}月\d{1,2}日\d{4}年)<\/td><td.*>([\d,]+(\.\d+)?)<\/td><td>([\d,]+(\.\d+)?)<\/td>
<td>([\d,]+(\.\d+)?)<\/td><td>([\d,]+(\.\d+)?)<\/td><td.*>([\d,]+(\.\d+)?)k<\/td>/g;
279nobodyさん
2017/05/12(金) 03:53:26.98ID:??? 公開された、APIを使えば?
公開されていないのなら、jQuery などで、抜き出せばいい
id が、results_box で、その子孫の<td> なら「#results_box td」
var tmp_id = "results_box";
var selector = "#" + tmp_id + " td";
console.log('selector = ' + selector);
var jqObj = $(data).find( selector );
console.log('jqObj.length = ' + jqObj.length, '\n', jqObj);
if ( 0 === jqObj.length ) { データなし }
公開されていないのなら、jQuery などで、抜き出せばいい
id が、results_box で、その子孫の<td> なら「#results_box td」
var tmp_id = "results_box";
var selector = "#" + tmp_id + " td";
console.log('selector = ' + selector);
var jqObj = $(data).find( selector );
console.log('jqObj.length = ' + jqObj.length, '\n', jqObj);
if ( 0 === jqObj.length ) { データなし }
281nobodyさん
2017/05/14(日) 02:53:30.34ID:??? プログラム板の正規表現スレの方が、人が多いよ
282nobodyさん
2017/07/26(水) 01:43:48.94ID:s1YLZ8fV !で始まる行を除く半角英数字を正規表現で記述することはできますか?
否定先読みを使ってもうまくいきませんでした
否定先読みを使ってもうまくいきませんでした
284nobodyさん
2017/07/26(水) 15:45:24.14ID:armondin285nobodyさん
2017/07/27(木) 01:15:09.81ID:??? プログラム板の正規表現スレの方が、人が多い。
そっちへ書き込んだら?
半角英数字は、文字クラスで、簡単に表現できそう
そっちへ書き込んだら?
半角英数字は、文字クラスで、簡単に表現できそう
286nobodyさん
2017/07/27(木) 01:16:54.60ID:??? 問題は具体例がないから何を対象として或いは対象としたくないのかが分からんということだ
287nobodyさん
2017/07/27(木) 03:55:30.32ID:??? そもそも半角英数字には、! は含まれていないから、
^[A-Za-z0-9]+$
^[A-Za-z0-9]+$
288nobodyさん
2017/09/06(水) 06:09:02.89ID:??? ABCとDEF という単語を両方含むレスをNGにする事はできますか?
ABCだけが含まれるレスとDEFだけが含まれるレスはNGにせず、両方含まれる場合だけNGにしたいです
ABCだけが含まれるレスとDEFだけが含まれるレスはNGにせず、両方含まれる場合だけNGにしたいです
289nobodyさん
2017/09/06(水) 08:34:30.55ID:??? できます
290nobodyさん
2017/09/06(水) 08:38:08.44ID:??? 教えてくださいw
ググっても見つかりませんでした
ググっても見つかりませんでした
291nobodyさん
2017/09/14(木) 16:08:53.99ID:??? 自己解決した
292nobodyさん
2017/10/09(月) 10:09:23.76ID:??? yo
293nobodyさん
2017/12/30(土) 12:30:39.98ID:YhlYw6jg 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
A4BHVWGZK8
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
A4BHVWGZK8
294nobodyさん
2018/01/02(火) 22:49:41.24ID:??? http://egg.5ch.net/test/read.cgi/applism/1509549074/800
このような、本文に何もないレスを非表示NGにしたいのですが、^$でも^\n$でも対処が出来ず。
…と言うより、一体どう投稿したのかさっぱり分からず…試しに任意の1文字を含む本文をNGにしても効果なく、ならば任意の1文字を含まない本文を…も効果なく、まるで正規表現のNGWordを一切受け付けない感じなのですが、なにか方法がありますでしょうか?
このような、本文に何もないレスを非表示NGにしたいのですが、^$でも^\n$でも対処が出来ず。
…と言うより、一体どう投稿したのかさっぱり分からず…試しに任意の1文字を含む本文をNGにしても効果なく、ならば任意の1文字を含まない本文を…も効果なく、まるで正規表現のNGWordを一切受け付けない感じなのですが、なにか方法がありますでしょうか?
295nobodyさん
2018/01/02(火) 23:12:45.68ID:??? >>294
あと、正規表現を使わずに文字列で
をNGWordにしたところ、本文無しレスが1つと、多数の普通のレスが巻き添えで消えてしまいました。
消えずに残った、連投された本文無しレスのしぶとさと言ったらもう…。
あと、正規表現を使わずに文字列で
をNGWordにしたところ、本文無しレスが1つと、多数の普通のレスが巻き添えで消えてしまいました。
消えずに残った、連投された本文無しレスのしぶとさと言ったらもう…。
296nobodyさん
2018/01/02(火) 23:46:55.52ID:??? 環境は?
297nobodyさん
2018/01/03(水) 00:57:25.66ID:??? とりあえずJaneStyleで動いたやつ
^(?i:<br(?: ?/)?>|\s|&#(?:x[0-9a-fA-F]+|[0-9]+);| )*$
本文中に数値参照入ってるから面倒なんだな
^(?i:<br(?: ?/)?>|\s|&#(?:x[0-9a-fA-F]+|[0-9]+);| )*$
本文中に数値参照入ってるから面倒なんだな
299nobodyさん
2018/01/03(水) 07:13:21.02ID:??? >>297
せっかく教えて頂いたのに肝心な環境をお伝えしてなくて申し訳ありません。
スマホのAndroid 8でChMateと言う専ブラを使ってます。
お教え頂いた正規表現自体は入力エラーになりませんでしたが、効果はありませんでした。
せっかく教えて頂いたのに肝心な環境をお伝えしてなくて申し訳ありません。
スマホのAndroid 8でChMateと言う専ブラを使ってます。
お教え頂いた正規表現自体は入力エラーになりませんでしたが、効果はありませんでした。
300nobodyさん
2018/01/03(水) 17:37:30.39ID:??? 2chmateだと環境無いし分からんな
改行の表現あたり直せば動くんじゃなかろか
改行の表現あたり直せば動くんじゃなかろか
301nobodyさん
2018/01/03(水) 19:10:15.22ID:??? >>300
レスありがとうございます。
本文中に数値参照入ってる…と言う事は、私からは本文が見えないだけで、本当は何らかの本文があるんですね。
もう少しググってみて手掛かりを探してみます。
ありがとうございました。
レスありがとうございます。
本文中に数値参照入ってる…と言う事は、私からは本文が見えないだけで、本当は何らかの本文があるんですね。
もう少しググってみて手掛かりを探してみます。
ありがとうございました。
302nobodyさん
2018/01/03(水) 21:04:10.98ID:??? >>301
>>297で改行コードが<br>じゃなく\nでも、800は消えると思うんだが
これで消えないとすると、(?i:)が解釈できないのかもしれない
5chのdat上は、改行は<br>しかあり得ないのでもっと簡略に書いてもいいし
文字参照の16進表記は無効なのでこれも必要ない
^(<br>|\s|&#[0-9]+;| )*$
これでダメなら、<br>のかわりに[\n\r]を書けばいい
ところで、くだんのレスには、半角空白が文字参照で書かれているわけ
&#32; (実際には&は半角の&)
5chで空白文字は、
&#32; &#160; &#8194; &#8195; &#8201; &#8203; &#12288;
したらばで空白文字は
&nbsp; &ensp; &emsp; &thinsp; &#160; &#8194; &#8195; &#8201; &#8203;
なおしたらばで中身の無いレスは上記の表現では何故かNGできない(^$ならOK)
http://jbbs.shitaraba.net/bbs/read.cgi/internet/8173/1426610041/659
>>297で改行コードが<br>じゃなく\nでも、800は消えると思うんだが
これで消えないとすると、(?i:)が解釈できないのかもしれない
5chのdat上は、改行は<br>しかあり得ないのでもっと簡略に書いてもいいし
文字参照の16進表記は無効なのでこれも必要ない
^(<br>|\s|&#[0-9]+;| )*$
これでダメなら、<br>のかわりに[\n\r]を書けばいい
ところで、くだんのレスには、半角空白が文字参照で書かれているわけ
&#32; (実際には&は半角の&)
5chで空白文字は、
&#32; &#160; &#8194; &#8195; &#8201; &#8203; &#12288;
したらばで空白文字は
&nbsp; &ensp; &emsp; &thinsp; &#160; &#8194; &#8195; &#8201; &#8203;
なおしたらばで中身の無いレスは上記の表現では何故かNGできない(^$ならOK)
http://jbbs.shitaraba.net/bbs/read.cgi/internet/8173/1426610041/659
303nobodyさん
2018/01/03(水) 23:41:36.34ID:??? >>302
レスありがとうございます。
そこまで親身になって頂いてとても嬉しく思います。
ですが、全てのパターンで試してみたものの、無情にも効果がありませんでした…。
ChMateはレスを長押しでNGに登録出来る機能もあるのですが、普通なら
http://imgur.com/4eGdel7.png
こんな風にNGWordを選択出来るのですが、あのレスでそれをすると
http://imgur.com/pJn3HBT.png
なんと選択肢からNGWordが消えてしまうという…。
これはもう、ChMateがNGWord出来ないレスですよと判断しているようなモノだと思って、諦めることにします。
とても参考になる解説まで教えて下さってありがとうございました。
レスありがとうございます。
そこまで親身になって頂いてとても嬉しく思います。
ですが、全てのパターンで試してみたものの、無情にも効果がありませんでした…。
ChMateはレスを長押しでNGに登録出来る機能もあるのですが、普通なら
http://imgur.com/4eGdel7.png
こんな風にNGWordを選択出来るのですが、あのレスでそれをすると
http://imgur.com/pJn3HBT.png
なんと選択肢からNGWordが消えてしまうという…。
これはもう、ChMateがNGWord出来ないレスですよと判断しているようなモノだと思って、諦めることにします。
とても参考になる解説まで教えて下さってありがとうございました。
304nobodyさん
2018/01/19(金) 18:59:57.48ID:??? ツイッターのハッシュタグ抽出したいんだけど、おすすめの正規表現教えてください
306nobodyさん
2018/01/20(土) 07:49:13.92ID:??? 正規表現の用語の英和対訳表みたいなのあったら教えてください
詳説正規表現(中古で買った第2版)読んでるんだけど、前後読み、先読み、後読みとういう用語で絵混乱しました。
というのは、例えば
日本語訳の、「前後読みの一つである先読みは」は原文では、
One type of lookaround, called lookahead
になってます。
look aheadの意味はweblioによると
(1) 前方を見る.
(2) 未来のことを考える; 将来に備える.
となってるので、
時系列の後先を意味する「先読み」ではなく、方向を示す「前方読み」だと分かってれば理解しやすいのに、と思ったからです。
詳説正規表現(中古で買った第2版)読んでるんだけど、前後読み、先読み、後読みとういう用語で絵混乱しました。
というのは、例えば
日本語訳の、「前後読みの一つである先読みは」は原文では、
One type of lookaround, called lookahead
になってます。
look aheadの意味はweblioによると
(1) 前方を見る.
(2) 未来のことを考える; 将来に備える.
となってるので、
時系列の後先を意味する「先読み」ではなく、方向を示す「前方読み」だと分かってれば理解しやすいのに、と思ったからです。
308nobodyさん
2018/02/20(火) 04:41:01.19ID:??? ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
309nobodyさん
2018/03/18(日) 20:22:37.68ID:aTbB2ZjF 言語はjavascriptですがjavaの処理を借りて使ってるみたいです
やりたいことは
「V2Cの書き込み時、URLに?があったら警告を出したいが、Youtubeサイトだけは除外したい場合」
正規表現でどう書けばいいかわからないので
&&条件にして回避しましたが1つの正規表現で可能ですか?
ソースはこれです
var ph = java.util.regex.Pattern.compile('ttps?([-_.!~*\'()a-zA-Z0-9;:\@&=+\$,%#/]+)\\?');
var ph2 = java.util.regex.Pattern.compile('youtube');//除外サイト
やりたいことは
「V2Cの書き込み時、URLに?があったら警告を出したいが、Youtubeサイトだけは除外したい場合」
正規表現でどう書けばいいかわからないので
&&条件にして回避しましたが1つの正規表現で可能ですか?
ソースはこれです
var ph = java.util.regex.Pattern.compile('ttps?([-_.!~*\'()a-zA-Z0-9;:\@&=+\$,%#/]+)\\?');
var ph2 = java.util.regex.Pattern.compile('youtube');//除外サイト
310nobodyさん
2018/03/18(日) 20:37:39.93ID:??? >>309
var ph = java.util.regex.Pattern.compile('(?!.*(youtube))ttps?([-_.!~*\'()a-zA-Z0-9;:\@&=+\$,%#/]+)\\?');
これにしたら出来ました
var ph = java.util.regex.Pattern.compile('(?!.*(youtube))ttps?([-_.!~*\'()a-zA-Z0-9;:\@&=+\$,%#/]+)\\?');
これにしたら出来ました
311nobodyさん
2018/05/03(木) 16:48:58.62ID:??? 1つにまとめるのが必ずしもいいとは限りませんよ
処理スピードは確実に遅いですそれ..
正規表現の否定は難しいので正規表現に不慣れならなるべく避けたほうが無難です
処理スピードは確実に遅いですそれ..
正規表現の否定は難しいので正規表現に不慣れならなるべく避けたほうが無難です
312nobodyさん
2018/05/18(金) 22:39:09.13ID:??? Perl 5互換の正規表現エンジンで、
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
This is a pen.
これを
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"|abcdefghijklmnopqrstuvwxyz
0123456789
This is a pen.
としたいのですがどうすればいいのでしょうか?
gオプションを外せば「[\r\n]」で初回の改行のみにマッチできるんですが
それができないツールなので指定できません
他の方法で初回の改行だけにマッチさせる方法を教えてもらえないでしょうか
よろしくおねがいします
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
This is a pen.
これを
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"|abcdefghijklmnopqrstuvwxyz
0123456789
This is a pen.
としたいのですがどうすればいいのでしょうか?
gオプションを外せば「[\r\n]」で初回の改行のみにマッチできるんですが
それができないツールなので指定できません
他の方法で初回の改行だけにマッチさせる方法を教えてもらえないでしょうか
よろしくおねがいします
313nobodyさん
2018/05/19(土) 00:09:58.17ID:??? シングルラインモードで改行文字除外して先頭からマッチすればいいんじゃねーの?
/^([^\x0A\x0D]+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/g
https://regex101.com/r/TW7wpm/2
マルチラインモードしかダメってんなら
/^((?:(?<!\x0A|\x0D).)+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/gm
https://regex101.com/r/TW7wpm/1
/^([^\x0A\x0D]+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/g
https://regex101.com/r/TW7wpm/2
マルチラインモードしかダメってんなら
/^((?:(?<!\x0A|\x0D).)+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/gm
https://regex101.com/r/TW7wpm/1
314nobodyさん
2018/05/19(土) 00:12:14.32ID:??? あ, 開始デリミタあったな, マルチラインモードでもこれでいいや
/\A([^\x0A\x0D]+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/gm
https://regex101.com/r/TW7wpm/3
/\A([^\x0A\x0D]+)(?:\x0D\x0A|[\x0A\x0D])/"$1"|/gm
https://regex101.com/r/TW7wpm/3
315nobodyさん
2018/05/19(土) 00:49:41.52ID:??? >>314
完璧に動作しました。
助かりました。
https://regex101.com/で試していたのですが
結果までリアルタイムに見れることも気づいてませんでした
本当にありがとうございました。
完璧に動作しました。
助かりました。
https://regex101.com/で試していたのですが
結果までリアルタイムに見れることも気づいてませんでした
本当にありがとうございました。
316nobodyさん
2018/07/02(月) 19:01:01.37ID:??? 教えてください
日付を処理するにあたり
2018-07-09 もしくは 7-9-18
のどちらがきても$1月$2日を7月9日にしたいと思っています。年は不要。
(?:20[12][0-9]-0?)?(1?[0-9])-0?([123]?[0-9])(?:-[12][0-9])?
で一応うごいてるのですが、もっとスマートにできますでしょうか?
日付を処理するにあたり
2018-07-09 もしくは 7-9-18
のどちらがきても$1月$2日を7月9日にしたいと思っています。年は不要。
(?:20[12][0-9]-0?)?(1?[0-9])-0?([123]?[0-9])(?:-[12][0-9])?
で一応うごいてるのですが、もっとスマートにできますでしょうか?
317nobodyさん
2018/07/04(水) 17:45:24.74ID:??? PHPで一番最後のカギカッコとその先を消したい時
$text = 'あいうえお「かきくけこ」「さしすせそ」たちつてと';
↓
$text = 'あいうえお「かきくけこ」';
$text = preg_replace("/「[^「」]*」.*/","",$text);
では元の文字列のまま返されます。
しかし、さしすせそ の部分を sasisuseso にすると成功します。何が問題なのでしょうか?
$text = 'あいうえお「かきくけこ」「さしすせそ」たちつてと';
↓
$text = 'あいうえお「かきくけこ」';
$text = preg_replace("/「[^「」]*」.*/","",$text);
では元の文字列のまま返されます。
しかし、さしすせそ の部分を sasisuseso にすると成功します。何が問題なのでしょうか?
318nobodyさん
2018/07/04(水) 18:51:15.18ID:??? >>316
そもそも処理自体が正規表現に向いてないと思うんですけど
>>317
それ全然ダメでしょ
*はgreedyだから最初にマッチした括弧以降全部食う
あとPHPならuオプション使うべき
/(「[^「」]*」)(?:(?!(?1)).)*$/
https://regex101.com/r/AKpqav/2
何か正規表現でももっと賢い方法ありそうだけど思い浮かばなかった
そもそも処理自体が正規表現に向いてないと思うんですけど
>>317
それ全然ダメでしょ
*はgreedyだから最初にマッチした括弧以降全部食う
あとPHPならuオプション使うべき
/(「[^「」]*」)(?:(?!(?1)).)*$/
https://regex101.com/r/AKpqav/2
何か正規表現でももっと賢い方法ありそうだけど思い浮かばなかった
319nobodyさん
2018/07/05(木) 13:28:53.77ID:??? >>318
ありがとうございます。半分くらいしか分かりませんがうまくいきました。
$text = preg_replace("/(「[^「」]*」)(?:(?!(?1)).)*$/su","",$text);
ありがとうございます。半分くらいしか分かりませんがうまくいきました。
$text = preg_replace("/(「[^「」]*」)(?:(?!(?1)).)*$/su","",$text);
320nobodyさん
2018/07/06(金) 12:54:34.90ID:??? age
321nobodyさん
2018/07/08(日) 09:24:45.77ID:??? txtファイルで20文字目で改行したいのです。
20文字目で改行コードを挿入すればいいのかなと思ったのですが、
書き方がわかりません。
よろしければどなたか教えてください。
20文字目で改行コードを挿入すればいいのかなと思ったのですが、
書き方がわかりません。
よろしければどなたか教えてください。
322nobodyさん
2018/07/08(日) 09:51:47.81ID:??? /\A(.{20})/$1\n/
323321
2018/07/08(日) 10:40:14.52ID:??? >>322
レスありがとうございます。
説明が足りず申し訳ありません。
例えばなんですが、秀丸エディタのような正規表現の置換に対応したテキストエディタで
<置換前>
あいうえおかきくけこさしすせそ
たちつてとなにぬねのはひふへほ
<置換後>
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
これは5文字目で改行させた場合の例ですが、これを20文字目で改行させたいということなんです。
で、<置換前><置換後>に正規表現でどのように書けばいいのかということなんですが、いかがでしょう?
レスありがとうございます。
説明が足りず申し訳ありません。
例えばなんですが、秀丸エディタのような正規表現の置換に対応したテキストエディタで
<置換前>
あいうえおかきくけこさしすせそ
たちつてとなにぬねのはひふへほ
<置換後>
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
これは5文字目で改行させた場合の例ですが、これを20文字目で改行させたいということなんです。
で、<置換前><置換後>に正規表現でどのように書けばいいのかということなんですが、いかがでしょう?
325321
2018/07/08(日) 11:37:21.89ID:??? >>324
検索してみたら、そのものずばりがありました。
【秀丸エディタ】正規表現を用いて指定文字数で改行させる方法
https://nodoame.net/archives/4675
どうもありがとうございました。
検索してみたら、そのものずばりがありました。
【秀丸エディタ】正規表現を用いて指定文字数で改行させる方法
https://nodoame.net/archives/4675
どうもありがとうございました。
326nobodyさん
2018/09/30(日) 10:40:36.91ID:??? 書き込めないテスト
327nobodyさん
2018/09/30(日) 10:49:02.82ID:??? test
行数?
行数?
328nobodyさん
2018/09/30(日) 10:50:04.80ID:??? IllustratorCS以降のスクリプトで縦中横を正規表現でしたいのですが
ググっても見つからないので自作しようと
縦書きテキストの縦中横を自動処理
var matchStr = /[0-9]/ ; //これをベースに↓
htt p://d-p.2-d.jp/ai-js/pages/01_scripts/text/index.html#14_text_vertical_folder
これだと半角1文字か2文字の数値のみで 小数点が間にあると1文字ずつバラバラに適用されてしまいます
半角数字2〜3文字(以上) かつ 途中に小数点ピリオド有無 を縦中横に
半角欧数字が1文字の場合は 全角に
したいです JavaScript
ググっても見つからないので自作しようと
縦書きテキストの縦中横を自動処理
var matchStr = /[0-9]/ ; //これをベースに↓
htt p://d-p.2-d.jp/ai-js/pages/01_scripts/text/index.html#14_text_vertical_folder
これだと半角1文字か2文字の数値のみで 小数点が間にあると1文字ずつバラバラに適用されてしまいます
半角数字2〜3文字(以上) かつ 途中に小数点ピリオド有無 を縦中横に
半角欧数字が1文字の場合は 全角に
したいです JavaScript
329nobodyさん
2018/09/30(日) 10:53:25.45ID:??? 数字とドットを判別する正規表現
^[1-9][0-9]+$|^[1-9][0-9]+\.?[0-9]+$
htt p://lma ker.blo g17.f c 2.com/blo g-en try-169.html
これだとうまく走りません
先頭数字が0でもかまわないので
^[0-9][0-9]+$|^[0-9][0-9]+\.?[0-9]+$ //や
^[0-9]+$|^[0-9]+\.?[0-9]+$ //を試してみましたが 駄目でした
NGワードtest回避
^[1-9][0-9]+$|^[1-9][0-9]+\.?[0-9]+$
htt p://lma ker.blo g17.f c 2.com/blo g-en try-169.html
これだとうまく走りません
先頭数字が0でもかまわないので
^[0-9][0-9]+$|^[0-9][0-9]+\.?[0-9]+$ //や
^[0-9]+$|^[0-9]+\.?[0-9]+$ //を試してみましたが 駄目でした
NGワードtest回避
330nobodyさん
2018/09/30(日) 11:07:07.10ID:??? 頭にマイナス文字が来るのを忘れていました
331nobodyさん
2018/09/30(日) 16:42:39.78ID:??? URLは見せたいのか伏せたいのかどっちやねん
332nobodyさん
2018/09/30(日) 16:47:40.24ID:??? URLは5chのNGワードにひっかかってるみたいで
すみません
すみません
333nobodyさん
2018/09/30(日) 19:23:05.09ID:??? 直接の答えじゃなくてすまんけど。
正規表現で^は行の先頭を意味するけど、それは意図とあってる?
縦書きに紛れる数字って行の先頭とは限らないんじゃないかな。
正規表現で^は行の先頭を意味するけど、それは意図とあってる?
縦書きに紛れる数字って行の先頭とは限らないんじゃないかな。
334nobodyさん
2018/09/30(日) 19:28:31.97ID:??? 一度に書けなくてすまん。
$も、あれは行末を意味するからそれも意図とあってるかな?
縦書きする日本語
数字部分
縦書きする日本語
という原稿なら俺のツッコミは余計なのでごめん。
逆に言うとそういう原稿じゃないと機能しないと思うよ。
$も、あれは行末を意味するからそれも意図とあってるかな?
縦書きする日本語
数字部分
縦書きする日本語
という原稿なら俺のツッコミは余計なのでごめん。
逆に言うとそういう原稿じゃないと機能しないと思うよ。
335nobodyさん
2018/09/30(日) 21:08:42.98ID:??? >>333
^が行の一番目から数字かどうかを見ていたから
$が行末を見ていたから
下のは走らなかったんですね
文中の数字なので、そのご指摘であってます
初歩的な内容ですみません
とりあえず頭と尻を取ってみてみます
こんな過疎なのにありがとうございます
^が行の一番目から数字かどうかを見ていたから
$が行末を見ていたから
下のは走らなかったんですね
文中の数字なので、そのご指摘であってます
初歩的な内容ですみません
とりあえず頭と尻を取ってみてみます
こんな過疎なのにありがとうございます
336nobodyさん
2018/09/30(日) 21:18:43.88ID:??? /[0-9]+$|^[1-9][0-9]+\.?[0-9]+/ ; //では駄目でした……
練習テスト
328nobodyさん2018/09/30(日) 10:50:04.80ID:???
この文字列を
↓こうしたい ヒット希望する箇所=【 】
【328】nobodyさん【2018】/【09】/【30】(日) 【10】:【50】:【04.80】ID:???
練習テスト
328nobodyさん2018/09/30(日) 10:50:04.80ID:???
この文字列を
↓こうしたい ヒット希望する箇所=【 】
【328】nobodyさん【2018】/【09】/【30】(日) 【10】:【50】:【04.80】ID:???
337nobodyさん
2018/09/30(日) 21:24:20.04ID:??? 386 や 38.6 みたいな数字だけのも試しましたが
386 には無効で 38.6 は 38 と ピリオド と 6 とに分けられて効きました
正規表現よりスクリプトの中身の処理なのかもしれません
う〜ん
386 には無効で 38.6 は 38 と ピリオド と 6 とに分けられて効きました
正規表現よりスクリプトの中身の処理なのかもしれません
う〜ん
338nobodyさん
2018/09/30(日) 22:48:44.95ID:??? いま手元に試せる環境ないけど、でもまだ環境を疑う前の状態、正規表現が完成してない状態だと思う。余裕あったら336の最後、試してみるね。
340nobodyさん
2018/10/01(月) 08:40:14.19ID:???341nobodyさん
2018/10/01(月) 09:15:39.08ID:???342nobodyさん
2018/10/01(月) 11:05:20.10ID:??? >>341
プラスマイマスまで処理していただいて
ありがとうございます
システムのプログラムが本職ではないので
こういうのが苦手でした
正規表現処理としては合っているのですが
スクリプトは半角数字1〜2文字のみを処理するだけで
3桁数字もプラスもマイナスも小数点も駄目でした
本当にお手間をおかけしました
今回はあきらめてみます う〜ん……
プラスマイマスまで処理していただいて
ありがとうございます
システムのプログラムが本職ではないので
こういうのが苦手でした
正規表現処理としては合っているのですが
スクリプトは半角数字1〜2文字のみを処理するだけで
3桁数字もプラスもマイナスも小数点も駄目でした
本当にお手間をおかけしました
今回はあきらめてみます う〜ん……
343nobodyさん
2018/10/18(木) 16:57:45.42ID:ks7bneBP 自分に対して「ガイジ」って言ってくる奴をNGみたいなの出来る?
344nobodyさん
2018/10/18(木) 17:27:56.89ID:??? 無理だと思う。どのレス番が自分なのか予め分かってる必要があるけどそれが難しいんじゃないかな。
345nobodyさん
2018/10/19(金) 07:53:00.28ID:??? 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
346nobodyさん
2018/10/20(土) 10:38:55.21ID:Isa88TJv perlをphp化しようとしています。
perlの$`や$'のようなマッチの前後の文字列を取り出すことはできますか?
また、tr/A-Z/A-Z/のような変換は、変換則をいちいち配列で指定しないとできないのでしょうか。
perlの$`や$'のようなマッチの前後の文字列を取り出すことはできますか?
また、tr/A-Z/A-Z/のような変換は、変換則をいちいち配列で指定しないとできないのでしょうか。
348nobodyさん
2018/10/22(月) 04:46:36.26ID:F6qPDtGA スレ内のランダムで3回以上繰り返される同一の文章をNGできますか?
349nobodyさん
2018/10/22(月) 05:47:20.33ID:F6qPDtGA 細かく説明するとスクリプトコピペ荒らしのコピペ内容が一定期間で変わってしまうというので困っています
V2Cの正規表現で似たもの見つけましたが、janeでは使えませんでした。
(?:^|\n)(.{5,}\n(.*\n){0,2})\1{3}
V2Cの正規表現で似たもの見つけましたが、janeでは使えませんでした。
(?:^|\n)(.{5,}\n(.*\n){0,2})\1{3}
350nobodyさん
2018/10/22(月) 06:55:08.17ID:??? Janeはdatは取得したそのままで何も加工しないので
改行は\nではなくて<br>となる
また、各行の先頭と末尾に半角空白が付加されている
実際にレスがどうなっているのかはdatを覗いてみるのが一番
改行は\nではなくて<br>となる
また、各行の先頭と末尾に半角空白が付加されている
実際にレスがどうなっているのかはdatを覗いてみるのが一番
351nobodyさん
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" ...>
の形にしたいのですが、どうすればよいでしょうか…?
「=」を含まないようにすればいいんだとは思いますが、なんだかごちゃごちゃするばかりでうまくいきませんでした。
<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" ...>
の形にしたいのですが、どうすればよいでしょうか…?
「=」を含まないようにすればいいんだとは思いますが、なんだかごちゃごちゃするばかりでうまくいきませんでした。
352351
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回しか置換できませんね…
replace( /class=["\s]((.+)+)"/g, '.$1' )
とすることで
<table .aaa bbb ccc (略) border="1" ...>
の形にすることができました。
しかし、.aaa .bbb .ccc のように繰り返して「.」を付加する方法がわかりません。
おとなしく2回に分けて置換するほかないのでしょうか?
replace( /class="(.+\s)?(.+)(\s.+)?"/g, '.$2' )
…これだと1回しか置換できませんね…
353nobodyさん
2018/10/25(木) 14:19:15.03ID:??? すいません質問させてください
専ブラアプリのchmateで連続投稿、連レスをNGに出来ませんか?
連続でなくても、同一IDで沢山書き込んでいるのをNGにしたいのです
毎日NGIDとして登録すれば済む話しなんですが‥
正規表現で一定数以上の書き込みをNGにしたいのです
よろしくお願いします
専ブラアプリのchmateで連続投稿、連レスをNGに出来ませんか?
連続でなくても、同一IDで沢山書き込んでいるのをNGにしたいのです
毎日NGIDとして登録すれば済む話しなんですが‥
正規表現で一定数以上の書き込みをNGにしたいのです
よろしくお願いします
354nobodyさん
2018/10/30(火) 16:07:23.36ID:??? 「あいう
えお」
『かきくけ
こ』
のような場合に改行を詰めたいのですが
^[」』](\r?\n)
を置換して消そうとしてもうまくいきませんでした
どうすれば詰めることができるでしょうか
(使用環境はAutoHotkeyです)
えお」
『かきくけ
こ』
のような場合に改行を詰めたいのですが
^[」』](\r?\n)
を置換して消そうとしてもうまくいきませんでした
どうすれば詰めることができるでしょうか
(使用環境はAutoHotkeyです)
355nobodyさん
2018/10/30(火) 16:53:51.94ID:???356354
2018/10/30(火) 18:03:23.40ID:??? >>355
あ、^は行頭ではなく、[]内の否定でした…
」や』で終わってたらOK(置換しない)
」や』以外で終わってたら、改行コードを削除して詰める
という感じです
^(.+)[^」』]\r?\n
なんか違いますね…
試しにこれでやってみると
「あいう」
『えお』
「かきく
けこ」
が
「あいう」『えお』
「かきく
けこ」
になるので逆っぽい…
どうも[^]による否定ができていない気がします
一応、AutoHotKeyの正規表現でも[^]による否定はできるはずなんですけど
あ、^は行頭ではなく、[]内の否定でした…
」や』で終わってたらOK(置換しない)
」や』以外で終わってたら、改行コードを削除して詰める
という感じです
^(.+)[^」』]\r?\n
なんか違いますね…
試しにこれでやってみると
「あいう」
『えお』
「かきく
けこ」
が
「あいう」『えお』
「かきく
けこ」
になるので逆っぽい…
どうも[^]による否定ができていない気がします
一応、AutoHotKeyの正規表現でも[^]による否定はできるはずなんですけど
357nobodyさん
2018/11/10(土) 19:29:23.78ID:6srco+Il358nobodyさん
2018/11/25(日) 15:27:10.04ID:TICRp/KJ 教えて下さい。
!と!に該当させたいけれど、!?と!?の場合は除外したい場合、
どのような正規表現になるでしょうか。
!と!に該当させたいけれど、!?と!?の場合は除外したい場合、
どのような正規表現になるでしょうか。
360nobodyさん
2018/11/25(日) 17:08:57.74ID:??? 質問スレ2つもあるけどどっちかにまとめたほうがいいな
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/
361nobodyさん
2018/11/26(月) 01:38:23.06ID:???362nobodyさん
2018/11/26(月) 07:47:55.88ID:??? 1に質問大歓迎とあるが
363nobodyさん
2018/12/31(月) 08:50:07.88ID:??? アドレスを編集しているんですけど
:80だけ消してたとえば:8001,:6080とか
80が含まれる数字は残したいんですけどどうやればいいんでしょうか
さくらエディターつかってます
:80だけ消してたとえば:8001,:6080とか
80が含まれる数字は残したいんですけどどうやればいいんでしょうか
さくらエディターつかってます
364nobodyさん
2019/01/14(月) 16:34:17.89ID:??? PHPで改行以外の制御文字を空文字に置換したいと思い次のように書きました。
preg_replace( '/(?!\n)[\p{Cc}]/u' , '' , $ver );
この場合、否定先読みで\nを指定しているのですが、\rも指定した方が良いのでしょうか。
詳しい方、アドバイスをください。
よろしくお願いします。
preg_replace( '/(?!\n)[\p{Cc}]/u' , '' , $ver );
この場合、否定先読みで\nを指定しているのですが、\rも指定した方が良いのでしょうか。
詳しい方、アドバイスをください。
よろしくお願いします。
365nobodyさん
2019/01/27(日) 18:09:07.98ID:??? そういえば\Rは\rや\nにマッチするって見かけたけど、間にある垂直タブや書式送りにもマッチするよな
366nobodyさん
2019/03/24(日) 10:07:25.65ID:??? 鬼太郎実況スレに現れる軍オタ荒しはどうNGすればいいんでしょうか
荒らす個々の文が違うのでやってもやっても消えません
荒らす個々の文が違うのでやってもやっても消えません
367nobodyさん
2019/07/07(日) 22:05:47.87ID:??? GreasemonkeyのスクリプトでニコニコのコメントをNGにするため
正規表現がうまく適用できなくて
任意の文字列が4字以上連続
.{4,}
スクリプトのほうの問題ならあきらめます
正規表現がうまく適用できなくて
任意の文字列が4字以上連続
.{4,}
スクリプトのほうの問題ならあきらめます
368nobodyさん
2019/07/30(火) 15:45:55.91ID:???369nobodyさん
2020/09/08(火) 14:42:32.02ID:??? 「任意の一文字と複数のスペース」を3回以上繰り返す文に合致する正規表現
(.[[:blank:]]{2}){3}
で↓の文にヒットしてくれないんだけど理由分かる方いる?
や め ろ ー ! し ゅ ー く ん の が
画像のように他の文にはヒットしている
https://i.imgur.com/mMhnds9.jpg
(.[[:blank:]]{2}){3}
で↓の文にヒットしてくれないんだけど理由分かる方いる?
や め ろ ー ! し ゅ ー く ん の が
画像のように他の文にはヒットしている
https://i.imgur.com/mMhnds9.jpg
372nobodyさん
2020/10/04(日) 12:23:49.19ID:EyprqV7h373nobodyさん
2020/11/12(木) 11:55:47.68ID:???374373
2020/11/26(木) 00:00:02.41ID:??? 上の質問をしたものです。
&gt;&gt;1<\/a>\s$ を半角で記述すれば目的を達成することができました。
お目汚し失礼しました。
&gt;&gt;1<\/a>\s$ を半角で記述すれば目的を達成することができました。
お目汚し失礼しました。
375nobodyさん
2021/06/01(火) 18:25:38.30ID:??? chmateのNG設定で
複数のワードを全て含む書き込みをNG (?s:^(?=.*ワード1)(?=.*ワード2)(?=.*ワード3))
の ?s:^ と?=はどういう意味ですか?
複数のワードを全て含む書き込みをNG (?s:^(?=.*ワード1)(?=.*ワード2)(?=.*ワード3))
の ?s:^ と?=はどういう意味ですか?
376nobodyさん
2021/10/20(水) 09:13:32.70ID:???377nobodyさん
2021/11/03(水) 20:06:54.60ID:??? # h1
## h2
これにマッチする正規表現はどう書けばいいんでしょうか?
# h1にマッチさせたい場合、以下のようにしましたが、h2にもマッチします
# .*
h1のみ、h2のみにマッチさせる書き方はどうしたらいいのでしょうか
## h2
これにマッチする正規表現はどう書けばいいんでしょうか?
# h1にマッチさせたい場合、以下のようにしましたが、h2にもマッチします
# .*
h1のみ、h2のみにマッチさせる書き方はどうしたらいいのでしょうか
378nobodyさん
2021/11/04(木) 17:32:15.82ID:??? 解決すました
379nobodyさん
2021/11/18(木) 22:44:23.00ID:LOXmgaYk お.んこ
380nobodyさん
2021/12/21(火) 17:54:59.04ID:ha2uCzxO PLAN
PLAN2
PLAN3
PLAN4
以上の4つを表す正規表現についてですが
^PLA(N|N[2-4])
で合ってますか?
PLAN2
PLAN3
PLAN4
以上の4つを表す正規表現についてですが
^PLA(N|N[2-4])
で合ってますか?
382nobodyさん
2021/12/21(火) 19:21:03.74ID:??? ところで、後ろはどうするんだ
PLAN5
とかでもPLANにマッチするけどいいのか
PLAN5
とかでもPLANにマッチするけどいいのか
383nobodyさん
2022/04/20(水) 03:42:46.79ID:??? スマホのブラウザ(Berry browser)での検索結果にでたYouTubeのリンクを
NEWPIPEで開くようにする正規表現をおしえていただけませんか?
NEWPIPEで開くようにする正規表現をおしえていただけませんか?
384nobodyさん
2022/08/03(水) 23:16:32.32ID:1IP0HnLs 正規表現ってこういうのも出来ますか?
あ い う え お
が「順不同」で「全て含まれている」のを検出
(1) ヒット例
ーーーーあいうえおーーーー
ーおーえーうーいーあーー
ーーーおあーーいいええーーう
(2) スルー例
ーあいうえーーーーー
ーおういあーーーーー
みたいなの1行の正規表現出来ますか?
あ い う え お
が「順不同」で「全て含まれている」のを検出
(1) ヒット例
ーーーーあいうえおーーーー
ーおーえーうーいーあーー
ーーーおあーーいいええーーう
(2) スルー例
ーあいうえーーーーー
ーおういあーーーーー
みたいなの1行の正規表現出来ますか?
385nobodyさん
2022/08/03(水) 23:48:42.00ID:??? できるよ
386nobodyさん
2022/08/04(木) 01:48:18.36ID:1CNBnxTN >>385
やり方教えて!
やり方教えて!
387nobodyさん
2022/08/04(木) 14:27:12.75ID:??? 複数文字列のANDの基本
^(?=.*文字列1)(?=.*文字列2)(?=.*文字列3)・・・
^(?=.*文字列1)(?=.*文字列2)(?=.*文字列3)・・・
388nobodyさん
2022/08/04(木) 16:32:56.29ID:1CNBnxTN これで行けました >>375
ありがとうございます
ありがとうございます
389nobodyさん
2023/01/08(日) 22:01:02.48ID:??? ^.{0,20}$
20文字以下の短文をNGにしたいんですけどアンカーが付いてるとスルーされてしまいます
どうやって改善したら良いですか?
20文字以下の短文をNGにしたいんですけどアンカーが付いてるとスルーされてしまいます
どうやって改善したら良いですか?
390nobodyさん
2023/07/06(木) 23:30:11.65ID:??? 5ちゃんのスレでid無しだけを表示したいのですが
391nobodyさん
2023/10/27(金) 13:16:07.99ID:??? 基礎的なことですみません、一応調べてはみたのですが
JavaScriptで改行コードを消す場合
str.replace(/\r\n|\n|\r/g, '')
は理解できますが
str.replace(/[\r\n]/g, '')
ではだめでしょうか?
JavaScriptで改行コードを消す場合
str.replace(/\r\n|\n|\r/g, '')
は理解できますが
str.replace(/[\r\n]/g, '')
ではだめでしょうか?
392nobodyさん
2023/10/29(日) 19:52:21.37ID:CfvUCDSw age
393nobodyさん
2023/11/24(金) 17:30:39.48ID:??? ChMateのNG機能で、レス本文に順不同で含まれる "あ" に5回マッチさせる際の書き方を教えていただきたいのです
こんな↓感じの毎回微妙に違う意味のないレスをポイしたいのです
うあいうえああえあかあたま
こんな↓感じの毎回微妙に違う意味のないレスをポイしたいのです
うあいうえああえあかあたま
394nobodyさん
2026/02/26(木) 04:36:45.48ID:ADZHfnXG395nobodyさん
2026/02/26(木) 10:07:53.84ID:??? 「あ」の後ろに改行以外の任意の5文字以上あること
396nobodyさん
2026/03/21(土) 14:21:22.10ID:??? ChMateで荒らしのワッチョイ99**-9999
固定の9部分に一致したものをNGしたいので教えて下さい
固定の9部分に一致したものをNGしたいので教えて下さい
400nobodyさん
2026/08/05(水) 22:36:20.00ID:??? [ぁ-ゖ]{13}
レスを投稿する
ニュース
- 「お家芸のカメラすら中国に追いつかれ…」「スマホでは中国、韓国に完全敗北」なぜ日本は「オワコン」と化したのか [七波羅探題★]
- 「袋麺の王だと思ってる」 男性が選ぶ“麺がうまい袋麺シリーズ”1位に「下手なお店よりおいしいと思います」 [パンナ・コッタ★]
- 【ブランド米】山形の雪若丸、食味は8年連続「特A」なのに販売振るわず 勝負の秋に「今年こそ」 [蚤の市★]
- 【8割おじさん】新型コロナ猛威に「人との接触を8割減らす」と呼びかけたのは正しかったか…第一線で発信を担った専門家は反省を口に★2 [煮卵★]
- 【STARTO ENTERTAINMENT】timelesz猪俣周杜容疑者 なぜ釈放されない?軽傷の傷害事件では異例…10日間の勾留請求が認められる [Ailuropoda melanoleuca★]
- 【自動車】残クレ650万円で買った「アルファード」わずか8ヶ月で廃車に…まだ残価580万円あるのに全部借金? 相手のいる事故でも? ★3 [ぐれ★]
- 【実況】博衣こよりのえちえち朝こよ🧪 Part2
- 【悲報】ONE OK ROCKのtaka、エドシーランを擁護して世界で炎上、全てを失う [124690655]
- 【高市悲報】佐倉市、高崎川の氾濫の様子!※動画像 [219241683]
- 鎌倉市内で女性が生き埋め 女性は生きたまま埋められた可能性
- 【動画】アジア大会、表彰式のメダル運びがババアとジジイだらけwwwブスでも若い女すら名古屋は用意できないのか… [779857986]
- 【超悲報】高市、スポンサーに280億円でやりたい放題 [419865925]