Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/03/15(水) 02:04:35.47ID:e01p03UP437デフォルトの名無しさん
2018/02/16(金) 17:34:31.04ID:dBpGhFbZ438デフォルトの名無しさん
2018/02/16(金) 18:30:54.06ID:Q4bZpk0j439デフォルトの名無しさん
2018/02/16(金) 19:13:24.69ID:M8XJLm2H440デフォルトの名無しさん
2018/02/16(金) 20:46:56.42ID:d9VDf+sb >>420
$# 「行頭部分にある 1 個以上の \[[^\]*\] を削除」と初見で思ったのだが、違うのか?
$# それとも C# でどうやるかわからないという話? 申し訳ないが C# は知らない。
$
$cat a_in
[ああ]おおおおお
[いいい]こここここ
[うう][ええ]そそそそそ
ととととと[たた]
[ええ]あああ[いい]うう
$perl -pe 's/^(\[[^\]]*\])+//' < a_in
おおおおお
こここここ
そそそそそ
ととととと[たた]
あああ[いい]うう
$perl -0777 -pe 's/^(\[[^\]]*\])+//gm' < a_in
おおおおお
こここここ
そそそそそ
ととととと[たた]
あああ[いい]うう
$
$# 「行頭部分にある 1 個以上の \[[^\]*\] を削除」と初見で思ったのだが、違うのか?
$# それとも C# でどうやるかわからないという話? 申し訳ないが C# は知らない。
$
$cat a_in
[ああ]おおおおお
[いいい]こここここ
[うう][ええ]そそそそそ
ととととと[たた]
[ええ]あああ[いい]うう
$perl -pe 's/^(\[[^\]]*\])+//' < a_in
おおおおお
こここここ
そそそそそ
ととととと[たた]
あああ[いい]うう
$perl -0777 -pe 's/^(\[[^\]]*\])+//gm' < a_in
おおおおお
こここここ
そそそそそ
ととととと[たた]
あああ[いい]うう
$
441デフォルトの名無しさん
2018/02/16(金) 21:24:08.90ID:nYHQACKk442デフォルトの名無しさん
2018/02/17(土) 05:30:35.08ID:xZfN9pA3 何を望んでいるのかを明確にする方が先かと……
443デフォルトの名無しさん
2018/02/17(土) 11:13:15.50ID:sN1lrGX4444デフォルトの名無しさん
2018/02/17(土) 11:27:08.57ID:IU1gsQgu [ab][cd][ef]ああ
これは、繰り返しが入っている。
N回削除する必要がある
[ab][cd][ef]ああ
[cd][ef]ああ
[ef]ああ
ああ
[〜] でグループ化すべき
これは、繰り返しが入っている。
N回削除する必要がある
[ab][cd][ef]ああ
[cd][ef]ああ
[ef]ああ
ああ
[〜] でグループ化すべき
445デフォルトの名無しさん
2018/02/17(土) 12:22:01.47ID:IU1gsQgu /^\[[^\]]*\]/ =~ "[ab][cd]ああ"
$& #=> [ab]
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
$& #=> [ab]
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
446デフォルトの名無しさん
2018/02/17(土) 12:32:03.69ID:IU1gsQgu /^\[[^\]]*\]/ =~ "[ab][cd]ああ"
$& #=> [ab]
$' #=> [cd]ああ
/^\[[^\]]*\]/ =~ $'
$& #=> [cd]
$' #=> ああ
/^\[[^\]]*\]/ =~ $'
#=> nil
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
$& はマッチした部分で、$' はマッチした部分の後ろを表すから、
マッチを繰り返していけば、出来るけど
$& #=> [ab]
$' #=> [cd]ああ
/^\[[^\]]*\]/ =~ $'
$& #=> [cd]
$' #=> ああ
/^\[[^\]]*\]/ =~ $'
#=> nil
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
$& はマッチした部分で、$' はマッチした部分の後ろを表すから、
マッチを繰り返していけば、出来るけど
447デフォルトの名無しさん
2018/02/17(土) 12:42:57.33ID:IU1gsQgu /^(\[[^\]]*\])+/ =~ "[ab][cd]ああ[ef]"
$& #=> [ab][cd]
やったー。Ruby で出来た
\[ があり、\[ 以外の文字が、0以上続いて、\] がある。
これをグループ化して、1回以上繰り返す
ただし、グループ外に、先頭からを指定する
$& #=> [ab][cd]
やったー。Ruby で出来た
\[ があり、\[ 以外の文字が、0以上続いて、\] がある。
これをグループ化して、1回以上繰り返す
ただし、グループ外に、先頭からを指定する
448デフォルトの名無しさん
2018/02/18(日) 07:04:41.40ID:4dAbe4pu 正規表現で使用される記号があるとワケわからなくなってくるから
適当な記号、例えばQなどに置き換えて試行錯誤して最後に元の記号に戻したりする
適当な記号、例えばQなどに置き換えて試行錯誤して最後に元の記号に戻したりする
449デフォルトの名無しさん
2018/02/18(日) 11:53:19.92ID:QWcmX5lk 余計なバックトラックを防ぐために
$s = qr/(?>\s*)/
ってやってパターンに埋め込むことならある。
$s = qr/(?>\s*)/
ってやってパターンに埋め込むことならある。
450デフォルトの名無しさん
2018/02/23(金) 22:29:48.73ID:vtIXFjR6 (?s:^(?=.*ス)(?=.*プ))
CHmateで使う正規表現らしいんだけど最初の
(?s:"
の意味が検索してもわからないのですが教えていただけないでしょうか
CHmateで使う正規表現らしいんだけど最初の
(?s:"
の意味が検索してもわからないのですが教えていただけないでしょうか
451デフォルトの名無しさん
2018/02/23(金) 22:45:42.10ID:0zsudQHR452デフォルトの名無しさん
2018/02/24(土) 00:35:55.07ID:bvxyjlLF >>451
ありがとございます
確認してなんとなく分かりました
ところでこの正規表現の場合(?s:)って名前には改行はないので不要じゃないかと思ってしまうのですがどういう目的で使われているのでしょうか
ありがとございます
確認してなんとなく分かりました
ところでこの正規表現の場合(?s:)って名前には改行はないので不要じゃないかと思ってしまうのですがどういう目的で使われているのでしょうか
453デフォルトの名無しさん
2018/02/24(土) 01:37:05.64ID:d6NztqhC 書いたヤツの趣味じゃ?
しかもかなりてきとう
ワッチョイ名前ならおそらくドコモ判別?でもプだけではないhttp://itest.5ch.net/test/read.cgi/mango/1467623805/312
先読みなんてコストかけなくてもKOROKORO AAはSd固定
改行を無理矢理入れ込んでというシチュエーションでスとプでねらい打ちも違和感
本文で^(?=.*A)の類を使うとレス数後半のコストはかなりのもの
これは名前だから大したことにはならないけど
深謀遠慮があるのかも知れんがそれこそ書いた本人へ
しかもかなりてきとう
ワッチョイ名前ならおそらくドコモ判別?でもプだけではないhttp://itest.5ch.net/test/read.cgi/mango/1467623805/312
先読みなんてコストかけなくてもKOROKORO AAはSd固定
改行を無理矢理入れ込んでというシチュエーションでスとプでねらい打ちも違和感
本文で^(?=.*A)の類を使うとレス数後半のコストはかなりのもの
これは名前だから大したことにはならないけど
深謀遠慮があるのかも知れんがそれこそ書いた本人へ
454デフォルトの名無しさん
2018/02/27(火) 15:54:44.12ID:2v1tH105 C#で、
var rgx = new Regex("(.)+");
var str = "こんにちは。";
Console.WriteLine(rgx.Replace(str, "$1"));
とすると「。」が出力されるのですが、なぜですか?
$1は「。」になるのですか?「こ」だと思ったのですが、違いますか?
var rgx = new Regex("(.)+");
var str = "こんにちは。";
Console.WriteLine(rgx.Replace(str, "$1"));
とすると「。」が出力されるのですが、なぜですか?
$1は「。」になるのですか?「こ」だと思ったのですが、違いますか?
455デフォルトの名無しさん
2018/02/27(火) 16:08:59.77ID:u9k8VAiO >>454
理由はここ読んで
https://www.regular-expressions.info/captureall.html
短い説明は↓ここでも出てくる
https://regex101.com/r/te5DBr/1
理由はここ読んで
https://www.regular-expressions.info/captureall.html
短い説明は↓ここでも出てくる
https://regex101.com/r/te5DBr/1
456デフォルトの名無しさん
2018/02/27(火) 17:03:18.46ID:VEiALCIH どれどれ…
javascript
'こんにちは。'.replace(/(.)+/, '$1');
=> "。"
ほんまや!知らんかった
javascript
'こんにちは。'.replace(/(.)+/, '$1');
=> "。"
ほんまや!知らんかった
457デフォルトの名無しさん
2018/02/27(火) 19:34:07.35ID:LuvO3mbW458デフォルトの名無しさん
2018/02/27(火) 21:09:42.50ID:PLAOSS1/ Ruby でも、
'こんにちは。'.gsub(/(.)+/, $1)
#=> "。"
'こんにちは。'.gsub(/(.)+/, $1)
#=> "。"
459デフォルトの名無しさん
2018/02/27(火) 22:02:02.32ID:u9k8VAiO >>457
.NETはCaptureCollectionってのに入れてくれるみたいよ
ただフルマッチとキャプチャリンググループと両方1度に必要なければ
/(.){1}/みたいに正規表現変えれば配列に入れられるよね
.NETはCaptureCollectionってのに入れてくれるみたいよ
ただフルマッチとキャプチャリンググループと両方1度に必要なければ
/(.){1}/みたいに正規表現変えれば配列に入れられるよね
460デフォルトの名無しさん
2018/02/28(水) 21:03:30.09ID:V9ixSdqS461デフォルトの名無しさん
2018/02/28(水) 22:05:09.20ID:pxJOkH76 単純に最後にマッチした部分ってことじゃないかな。赤ラクダにそう書いてある。
C# は知らない。誰か翻訳してあげて。
C# は知らない。誰か翻訳してあげて。
462デフォルトの名無しさん
2018/03/01(木) 00:07:23.55ID:UkKloD3U >>460
キャプチャグループに量指定子がついてるとそのキャプチャグループの箇所に複数回マッチする可能性があるよね。
んで複数回マッチした場合は最後にマッチしたやつがそのキャプチャグループに入ってるってこと
"こんにちは。”に対して、/(.)+/でマッチをかけると
最初にピリオドが“こ”にマッチしてそれをグループ1に入れて
次に+を見てまたマッチするか繰り返す
今度はピリオドに”ん”がマッチするからそれをグループ1に入れて、、、
あとは繰り返し
“こんにちは。”が/(.)+/にフルマッチした時点でグループ1に入ってるのは”。”
キャプチャグループに量指定子がついてるとそのキャプチャグループの箇所に複数回マッチする可能性があるよね。
んで複数回マッチした場合は最後にマッチしたやつがそのキャプチャグループに入ってるってこと
"こんにちは。”に対して、/(.)+/でマッチをかけると
最初にピリオドが“こ”にマッチしてそれをグループ1に入れて
次に+を見てまたマッチするか繰り返す
今度はピリオドに”ん”がマッチするからそれをグループ1に入れて、、、
あとは繰り返し
“こんにちは。”が/(.)+/にフルマッチした時点でグループ1に入ってるのは”。”
463デフォルトの名無しさん
2018/03/01(木) 00:17:03.42ID:ikcjc59H /(.+)/ =~ 'こんにちは。'
$1 は、'こんにちは。'
/(.)+/ =~ 'こんにちは。'
$1 は、'。'
上は、1回しかマッチしていない、最長マッチ。
下は、1文字のマッチで、6回マッチして、最後のマッチが、'。'
$1 は、'こんにちは。'
/(.)+/ =~ 'こんにちは。'
$1 は、'。'
上は、1回しかマッチしていない、最長マッチ。
下は、1文字のマッチで、6回マッチして、最後のマッチが、'。'
464デフォルトの名無しさん
2018/03/01(木) 00:55:21.78ID:UkKloD3U465デフォルトの名無しさん
2018/03/01(木) 02:58:48.22ID:ksBcbegD >>462
なるほど。
なるほど。
466デフォルトの名無しさん
2018/03/01(木) 05:29:23.47ID:AobHbkwq 詳細 ○○表現
尼での評価がよかったので買ってみたが全然
リファレンスにもならない
やっぱり海外の訳本はだめだ、すくなくとも自分には良書でなかった
尼での評価がよかったので買ってみたが全然
リファレンスにもならない
やっぱり海外の訳本はだめだ、すくなくとも自分には良書でなかった
467デフォルトの名無しさん
2018/03/01(木) 15:52:15.50ID:UkKloD3U フクロウ本のことかな
中の仕組みを理解するための本であって
リファレンス本でも入門書でもないからね
中の仕組みを理解するための本であって
リファレンス本でも入門書でもないからね
468デフォルトの名無しさん
2018/03/02(金) 09:24:29.36ID:O5NS5hyG469デフォルトの名無しさん
2018/03/02(金) 13:01:46.53ID:btKfsNEv 試しに
for pat in '([cd])+' '(.)+' '.*(.)' ; do perl -Mre=debug -e '$pat = shift; print "abcd" =~ /$pat/ ,"\n" ;' "$pat" ; done
ってやってみた。最適化してそうだ。.*(.) は意味的には同じだと思うがバックトラックの分だけ不利。
Perl のソースコードを確認したわけではないので断定はしかねるが。
for pat in '([cd])+' '(.)+' '.*(.)' ; do perl -Mre=debug -e '$pat = shift; print "abcd" =~ /$pat/ ,"\n" ;' "$pat" ; done
ってやってみた。最適化してそうだ。.*(.) は意味的には同じだと思うがバックトラックの分だけ不利。
Perl のソースコードを確認したわけではないので断定はしかねるが。
470デフォルトの名無しさん
2018/03/03(土) 08:34:43.98ID:ooAwkD9v 今はサンプルだからいいけど
長大な文章じゃスキップで最適化しないとやってられないよな
長大な文章じゃスキップで最適化しないとやってられないよな
471469
2018/03/03(土) 13:47:58.16ID:GJwmn3yF 個人的には (.)+ と書くべき理由が思い当たらない。
472デフォルトの名無しさん
2018/03/04(日) 15:44:40.85ID:QUMop1Gl 正規表現とギターの速弾きが出来る奴は賢いと尊敬している
473デフォルトの名無しさん
2018/04/06(金) 19:38:34.22ID:U5C29TI1 複数のSQL文の書かれているSQLファイルから、DBの処理単位でSQL文を逐次取り出す正規表現が書きたいのですがどうしたら良いですか?
厳密なものでは無くても良くて英文字から始まってセミコロンで終わるというもので良いのです。
ただ、SQL分は行頭から始まるとは限らず、セミコロンの直後に次のSQL文が始まったり、空白文字などがあってからSQLの文が始まったりすることもあります。
また、文中に出てくるエスケープされたセミコロンや文字列中のセミコロンは文末の対象になって区切られては困るのでそれはスキップして評価がしたいです。
厳密なものでは無くても良くて英文字から始まってセミコロンで終わるというもので良いのです。
ただ、SQL分は行頭から始まるとは限らず、セミコロンの直後に次のSQL文が始まったり、空白文字などがあってからSQLの文が始まったりすることもあります。
また、文中に出てくるエスケープされたセミコロンや文字列中のセミコロンは文末の対象になって区切られては困るのでそれはスキップして評価がしたいです。
474デフォルトの名無しさん
2018/04/06(金) 22:09:42.71ID:witjIkkr 文字列の内外を判断するの難しい・・・・難しくない?
475デフォルトの名無しさん
2018/04/07(土) 12:21:20.06ID:BRhgC8GS multilineのオプション付けて
;でsplitしただけじゃだめなん
;でsplitしただけじゃだめなん
476デフォルトの名無しさん
2018/04/07(土) 12:23:00.56ID:BRhgC8GS >>474
それが含まれる時点で無理に正規表現一行で書くのはいつもあきらめる
それが含まれる時点で無理に正規表現一行で書くのはいつもあきらめる
477デフォルトの名無しさん
2018/04/07(土) 12:30:00.76ID:LBmouzwW ちゃんとやるなら文字列中のエスケープされたシングルクォートとかも処理しないとダメだし正規表現でやるのはすごく大変だと思う
478デフォルトの名無しさん
2018/04/07(土) 12:57:57.77ID:wQfk+GMe 正規文法ではかなり厳しい印象で, BNFの管轄だと思うおよね
479デフォルトの名無しさん
2018/04/08(日) 06:27:09.85ID:1mmlbc0v 1. ; で分割して、配列に入れる
2. 配列の各要素から、余分なものを削除する
2 のルールを、厳格に決めればよい
Ruby で作る方が速い
2. 配列の各要素から、余分なものを削除する
2 のルールを、厳格に決めればよい
Ruby で作る方が速い
480デフォルトの名無しさん
2018/04/08(日) 11:04:16.11ID:YK+KPtHu 正規表現は置いといて
DB用意して""で囲まれた部分をテキストとしてDBに入れながらID取得
本文側はIDに置き換える
あとは正規表現を使っても使わなくてもいいが;で分割
最後にまたID部分に元のテキストを流し込む
DB用意して""で囲まれた部分をテキストとしてDBに入れながらID取得
本文側はIDに置き換える
あとは正規表現を使っても使わなくてもいいが;で分割
最後にまたID部分に元のテキストを流し込む
481デフォルトの名無しさん
2018/04/08(日) 13:00:20.92 そこであきらめんなよ!
正規表現だけで乗り切ろうという気概を見せろよ!
正規表現だけで乗り切ろうという気概を見せろよ!
482デフォルトの名無しさん
2018/04/08(日) 13:08:05.41ID:wO4VFvVz (シングル|ダブル)クオート文字列って正規言語で表せる範囲にあるんかね?
文脈自由言語では表せるけど
文脈自由言語では表せるけど
483デフォルトの名無しさん
2018/04/08(日) 13:27:19.00ID:aPw27k7Z どの正規表現がつかえるのかがわからん
環境を明示してくれないとなー
環境を明示してくれないとなー
484デフォルトの名無しさん
2018/04/08(日) 18:18:43.83ID:1mmlbc0v /\"([^\"]*)\"/ =~ 'a"bc"d'
$1 #=> bc
"〜" で、〜には、" 以外の文字列が入る
$1 #=> bc
"〜" で、〜には、" 以外の文字列が入る
485デフォルトの名無しさん
2018/04/08(日) 18:28:48.48ID:aPw27k7Z "のエスケープや'もあるし
'a"b\"c'd"e'
'a"b\"c'd"e'
486473
2018/04/09(月) 10:33:55.69ID:Q+cYQrXX 沢山ご回答ありがとうございます。
皆さんのご意見を伺った限り、やはり正規表現一本では難しそうですよね…
はじめは前処理で既成のsqlパーサなどを通して、きれいに整形して別ファイルに保存してから処理する方法も検討していましたが、
できれば現物ファイルを生のまま読み込んで正規表現でなんとか行けないかなと思い試行錯誤していて、
うまい書き方が全然できなくてここに書き込みさせて頂いた次第です。
>>483
使用できる正規表現はPCREです。
具体的にはPHPで省メモリで巨大なSQLファイルを実行する仕組みが作りたくて
相談させてもらいました。自分の頭の中のアイデアでは
1.fileをbufsize分readして
2.正規表現でマッチするかチェック
3.マッチしていたらそのSQLを実行。マッチした文より、先の部分は次の実行のためにバッファに積んで1へもどる
4.マッチしていない場合は更にbufsize分read、2->4を繰り返す。
こんなイメージでした。
それを鑑みると、>>480さんのアイデアはちょっとありかなとも思います。
スレ違いなっちゃいますが、regexを使わずプログラム上でクオートの始まりと終わりを正しく
処理できれば随分楽できそうな気がします。一考の余地ありですかね?
皆さんのご意見を伺った限り、やはり正規表現一本では難しそうですよね…
はじめは前処理で既成のsqlパーサなどを通して、きれいに整形して別ファイルに保存してから処理する方法も検討していましたが、
できれば現物ファイルを生のまま読み込んで正規表現でなんとか行けないかなと思い試行錯誤していて、
うまい書き方が全然できなくてここに書き込みさせて頂いた次第です。
>>483
使用できる正規表現はPCREです。
具体的にはPHPで省メモリで巨大なSQLファイルを実行する仕組みが作りたくて
相談させてもらいました。自分の頭の中のアイデアでは
1.fileをbufsize分readして
2.正規表現でマッチするかチェック
3.マッチしていたらそのSQLを実行。マッチした文より、先の部分は次の実行のためにバッファに積んで1へもどる
4.マッチしていない場合は更にbufsize分read、2->4を繰り返す。
こんなイメージでした。
それを鑑みると、>>480さんのアイデアはちょっとありかなとも思います。
スレ違いなっちゃいますが、regexを使わずプログラム上でクオートの始まりと終わりを正しく
処理できれば随分楽できそうな気がします。一考の余地ありですかね?
487デフォルトの名無しさん
2018/04/09(月) 12:10:15.13ID:M/BmQ9Z1 "'", "\""
'"', '\''
クォーテーション内にクォーテーションがある、入れ子状態が難しい。
クォーテーションを、\ でエスケープしたりもあるし
XML Parser とか、プログラム実行の命令木とか、解析ツールを使わないと無理。
プログラミングで何とかできる、範囲を超えている
そもそも、入れ子状態にどういうパターンがあるのか、
全列挙して考えるのが、非常に難しい
入れ子の入れ子とか、再帰的に入れ子するかも知れないし
'"', '\''
クォーテーション内にクォーテーションがある、入れ子状態が難しい。
クォーテーションを、\ でエスケープしたりもあるし
XML Parser とか、プログラム実行の命令木とか、解析ツールを使わないと無理。
プログラミングで何とかできる、範囲を超えている
そもそも、入れ子状態にどういうパターンがあるのか、
全列挙して考えるのが、非常に難しい
入れ子の入れ子とか、再帰的に入れ子するかも知れないし
488デフォルトの名無しさん
2018/04/09(月) 17:17:14.98ID:4vJW9Ikj >>486
こういう感じでどうだろう
[a-zA-Z](?:\\"|\\'|[^"';]|(["'])(?:\\\1|(?:(?!\1).))*(?<!\\)\1)*;
英数字で始まって、\"や\'は許す;で終わる文字列
頭に^\s*を付けたほうがいいかもしれないけど
文字列は、" ' "、' " '、" \" "、' \' 'は許す( ; もOK)
ところで、" ' " ' "とは書けるんだっけ?
こういう括弧のネストが可能なら、正規表現の方もネスト構文や条件構文を使わないといけないけど
(俺は使ったことはないけど)
こういう感じでどうだろう
[a-zA-Z](?:\\"|\\'|[^"';]|(["'])(?:\\\1|(?:(?!\1).))*(?<!\\)\1)*;
英数字で始まって、\"や\'は許す;で終わる文字列
頭に^\s*を付けたほうがいいかもしれないけど
文字列は、" ' "、' " '、" \" "、' \' 'は許す( ; もOK)
ところで、" ' " ' "とは書けるんだっけ?
こういう括弧のネストが可能なら、正規表現の方もネスト構文や条件構文を使わないといけないけど
(俺は使ったことはないけど)
489デフォルトの名無しさん
2018/04/09(月) 17:44:25.66ID:4vJW9Ikj ただし↑は、コメント文はないものとしてのこと
490デフォルトの名無しさん
2018/04/09(月) 19:00:46.18ID:4vJW9Ikj さっそくダメだった
"\\"
"\\"
491デフォルトの名無しさん
2018/04/10(火) 00:21:39.82ID:oEQHPFsL 仕様を確定させるのが難しい。
単なるテキストには、ルールが無いだろ
XML とか、プログラム言語には、仕様があって、
ルール違反の書き方を許さないから、プログラムで判定できる
だから、まずこう書いたらエラーにする、という仕様を決めるべき
単なるテキストには、ルールが無いだろ
XML とか、プログラム言語には、仕様があって、
ルール違反の書き方を許さないから、プログラムで判定できる
だから、まずこう書いたらエラーにする、という仕様を決めるべき
492デフォルトの名無しさん
2018/04/10(火) 01:17:02.18ID:IM3kTV8x >>491
https://ronsavage.github.io/SQL/sql-2003-2.bnf.html
こいつのcharacter string literalとか読め
ちゃんと規格化されてるんだからさ
その上で正規表現で書くのは難しいって話
https://ronsavage.github.io/SQL/sql-2003-2.bnf.html
こいつのcharacter string literalとか読め
ちゃんと規格化されてるんだからさ
その上で正規表現で書くのは難しいって話
493デフォルトの名無しさん
2018/04/11(水) 13:14:45.93ID:p/bo/Ju1 試しに Perl でやってみた。最も楽観的な想定ならこのくらいまでは手抜きできる。
use strict;
my $comment = qr/(?:--.*?\n)/ ;
my $literal_ch = qr/(?:\'\'|[^\'])/ ;
my $ch_str_literal = qr/(?:\'(?>$literal_ch*)\')/ ;
my $other_ch = qr/[^\';]/ ;
my $some_str = qr/(?:$comment|$ch_str_literal|$other_ch)/ ;
my $statement = qr/(?:$some_str*;)/ ;
my $text = '';
while (<>){ $text .= $_; while ( $text =~ s/^$statement// ){ print("Found:$&\n") }}
文字列リテラルの中の文字の記法に特に対処すべき拡張があるなら $literal_ch に加えれば良い。
" は識別子を書くためのものだが '、;、-- のどれかが入る可能性があるなら $other_ch と $some_str に加えればいいだろう。
多分、問題はそこではない。この例では行単位の入力だから面倒な問題を回避できているが、そうでない場合の問題だ。
たとえばコメントの始まりの - までしか読まれていないという場合。もっと読まなければコメントかどうか判断できない。
あるいは文字列リテラルの中で ' が現れた場合。それは文字列リテラルの終わりなのか、それともリテラルの ' を表す '' の 1 文字目なのか。
こういう処理を自分で書くのは難しくはなくても面倒だし、処理速度も遅い。だから結局 flex を使ったりする。
use strict;
my $comment = qr/(?:--.*?\n)/ ;
my $literal_ch = qr/(?:\'\'|[^\'])/ ;
my $ch_str_literal = qr/(?:\'(?>$literal_ch*)\')/ ;
my $other_ch = qr/[^\';]/ ;
my $some_str = qr/(?:$comment|$ch_str_literal|$other_ch)/ ;
my $statement = qr/(?:$some_str*;)/ ;
my $text = '';
while (<>){ $text .= $_; while ( $text =~ s/^$statement// ){ print("Found:$&\n") }}
文字列リテラルの中の文字の記法に特に対処すべき拡張があるなら $literal_ch に加えれば良い。
" は識別子を書くためのものだが '、;、-- のどれかが入る可能性があるなら $other_ch と $some_str に加えればいいだろう。
多分、問題はそこではない。この例では行単位の入力だから面倒な問題を回避できているが、そうでない場合の問題だ。
たとえばコメントの始まりの - までしか読まれていないという場合。もっと読まなければコメントかどうか判断できない。
あるいは文字列リテラルの中で ' が現れた場合。それは文字列リテラルの終わりなのか、それともリテラルの ' を表す '' の 1 文字目なのか。
こういう処理を自分で書くのは難しくはなくても面倒だし、処理速度も遅い。だから結局 flex を使ったりする。
494デフォルトの名無しさん
2018/04/11(水) 14:19:31.82ID:jfPKheqL 仕様通りのParser とか、構文解析ツールが必要
それらを使って出力された、抽象構文木を使うのがよい
それらを使って出力された、抽象構文木を使うのがよい
495デフォルトの名無しさん
2018/05/04(金) 19:16:13.25ID:kVAlpXQV ★タイトル
★★タイトル
上のものにマッチさせたいのですが、
^★.*$
としてしまうと、下まで含まれるのですが、どうしたらいいでしょうか
★★タイトル
上のものにマッチさせたいのですが、
^★.*$
としてしまうと、下まで含まれるのですが、どうしたらいいでしょうか
496デフォルトの名無しさん
2018/05/04(金) 19:36:12.61ID:eD01Afe2 >>495
^★(?! ★).*$
^★(?! ★).*$
497495
2018/05/04(金) 21:14:35.89ID:L0LZvRGB 半角SP紛れ込んだわ
^★(?!★).*$
^★(?!★).*$
498デフォルトの名無しさん
2018/05/05(土) 05:47:27.14ID:iaqxNbgL ↑解答どうも
できなかったです
ちなみにmeryというテキストエディタの正規表現です
何の言語かはわかりませんが
できなかったです
ちなみにmeryというテキストエディタの正規表現です
何の言語かはわかりませんが
499デフォルトの名無しさん
2018/05/05(土) 06:26:09.87ID:O3up5M1Q500デフォルトの名無しさん
2018/05/05(土) 19:07:12.77ID:iaqxNbgL ↑ありがとうございます。行けました。
.*の前に否定を入れればいいんですね
.*の前に否定を入れればいいんですね
501デフォルトの名無しさん
2018/05/05(土) 21:57:45.66ID:+tF+3NSL 鬼雲…だと…?!
502デフォルトの名無しさん
2018/05/07(月) 13:28:13.91ID:XtvW294Z 正規表現をちゃんと論理的に導きたいと思って参考になる本を
買ったら必要な予備知識に群とか環が出てきて即諦めた
正規表現周りの開発をしてる人達はすごい人達なんだなぁ
すごさを直で実感出来た
買ったら必要な予備知識に群とか環が出てきて即諦めた
正規表現周りの開発をしてる人達はすごい人達なんだなぁ
すごさを直で実感出来た
503デフォルトの名無しさん
2018/05/07(月) 14:59:22.19ID:QMgv+0U5 用語に慣れてないだけだろ
やってることは大したことじゃない
やってることは大したことじゃない
504デフォルトの名無しさん
2018/05/07(月) 18:08:31.65ID:XtvW294Z まぁ膨大な時間と労力をかければ自分にも分かるんだろうけど
現実的じゃないんだよなぁ(人の何倍も時間かかるだろうし)
これからは正規表現技術者の努力に感謝しながら正規表現を
使おうと思います(^^)>
現実的じゃないんだよなぁ(人の何倍も時間かかるだろうし)
これからは正規表現技術者の努力に感謝しながら正規表現を
使おうと思います(^^)>
505デフォルトの名無しさん
2018/05/14(月) 07:31:45.21ID:0PI4I4+g JavaScriptによる正規表現チェッカー
くっそ長いので短縮
https://goo. gl/CE3aZ8
https://fatiherikli.github.io/fil/#eyJwYXRoIjoiSmF2YVNjcmlwdFRlc3QxLmpzIiwic291cmNlIjoiLyog5q2j6KaP6KG
o54++44Oe44OD44OB44OG44K544OIICovXG5cbi8vIOato+imj+ihqOePvlxudmFyIHJlID0gbmV3IFJlZ0V4cCgv
XFxkKy9nKTtcblxuLy8g44OG44Kt44K544OIXG52YXIgdGV4dCA9IChmdW5jdGlvbiAoKSB7LypcbmFhYVxuYmIx
MmJcbmM1NjdjYzg5XG4qL30pLnRvU3RyaW5nKCkuc3BsaXQoL1xcbi8pLnNsaWNlKDEsLTEpO1xuXG5jb25zb2x
lLmxvZyhcIlJlZ0V4cDpcIiwgcmUudG9TdHJpbmcoKSlcbmNvbnNvbGUubG9nKFwiVGV4dDpcIiwgdGV4dCk7XG5c
bnRleHQuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7XG4gICAgY29uc29sZS5sb2coXCJsaW5lOlwiLCBsaW5lKTtcbiA
gICB2YXIgcmVzdWx0ID0gbGluZS5tYXRjaChyZSk7XG4gICAgaWYocmVzdWx0KVxuICAgICAgICBjb25zb2xlLmxv
ZyhcInJlc3VsdDpcIiwgcmVzdWx0KTtcbiAgICBlbHNlXG4gICAgICAgIGNvbnNvbGUubG9nKFwicmVzdWx0OlwiLCBcIm51bGxcIik7XG59KVxuIn0
くっそ長いので短縮
https://goo. gl/CE3aZ8
https://fatiherikli.github.io/fil/#eyJwYXRoIjoiSmF2YVNjcmlwdFRlc3QxLmpzIiwic291cmNlIjoiLyog5q2j6KaP6KG
o54++44Oe44OD44OB44OG44K544OIICovXG5cbi8vIOato+imj+ihqOePvlxudmFyIHJlID0gbmV3IFJlZ0V4cCgv
XFxkKy9nKTtcblxuLy8g44OG44Kt44K544OIXG52YXIgdGV4dCA9IChmdW5jdGlvbiAoKSB7LypcbmFhYVxuYmIx
MmJcbmM1NjdjYzg5XG4qL30pLnRvU3RyaW5nKCkuc3BsaXQoL1xcbi8pLnNsaWNlKDEsLTEpO1xuXG5jb25zb2x
lLmxvZyhcIlJlZ0V4cDpcIiwgcmUudG9TdHJpbmcoKSlcbmNvbnNvbGUubG9nKFwiVGV4dDpcIiwgdGV4dCk7XG5c
bnRleHQuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7XG4gICAgY29uc29sZS5sb2coXCJsaW5lOlwiLCBsaW5lKTtcbiA
gICB2YXIgcmVzdWx0ID0gbGluZS5tYXRjaChyZSk7XG4gICAgaWYocmVzdWx0KVxuICAgICAgICBjb25zb2xlLmxv
ZyhcInJlc3VsdDpcIiwgcmVzdWx0KTtcbiAgICBlbHNlXG4gICAgICAgIGNvbnNvbGUubG9nKFwicmVzdWx0OlwiLCBcIm51bGxcIik7XG59KVxuIn0
506デフォルトの名無しさん
2018/05/15(火) 21:31:31.85ID:xchMEgzc ちょっと修正
https://goo. gl/M2Fn68
https://goo. gl/M2Fn68
507デフォルトの名無しさん
2018/05/19(土) 02:57:37.83ID:F73VBvr9 Linuxに触れるまで正規表現に方言があるなんて知らなかった
基本正規表現だの拡張正規表現だの
vimの置換で悩んでたら原因がエスケープの有無が原因とかもうね
ある程度は使えるが先読みとか後読みとか僅かでも深入りすると余計に混乱する
基本正規表現だの拡張正規表現だの
vimの置換で悩んでたら原因がエスケープの有無が原因とかもうね
ある程度は使えるが先読みとか後読みとか僅かでも深入りすると余計に混乱する
508デフォルトの名無しさん
2018/05/19(土) 11:08:45.44ID:rxs2hai/ 小さい世界で囲い込まれてれば楽だよな
ただし何かの拍子ではみ出した時に世界の広さを知って己の無力さを痛感する
よくあるパターン
ただし何かの拍子ではみ出した時に世界の広さを知って己の無力さを痛感する
よくあるパターン
509デフォルトの名無しさん
2018/05/23(水) 19:28:29.89ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
QBPEH
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
QBPEH
510デフォルトの名無しさん
2018/05/24(木) 10:47:44.54ID:cPlRxlDn QBPEH
511デフォルトの名無しさん
2018/05/25(金) 13:52:01.06ID:X/Hngdv+ HTMLの解析を正規表現でやりたいのですが
<a href="xxxxx"><img src="yyyyy" /></a>
という風に、<a> で括られた img の src だけを抽出したいんですけど
どうしたらいいのでしょう。
<a> で括られてない
<img src="yyyyy" />
は除外したいのです。
<a href="xxxxx"><img src="yyyyy" /></a>
という風に、<a> で括られた img の src だけを抽出したいんですけど
どうしたらいいのでしょう。
<a> で括られてない
<img src="yyyyy" />
は除外したいのです。
512デフォルトの名無しさん
2018/05/25(金) 13:53:08.12ID:X/Hngdv+ あ、すみません
<a href="xxxxx"><img src="yyyyy" /></a>
<a href="xxxxx">あああ<img src="yyyyy" /></a>
<a href="xxxxx"><img src="yyyyy" />いいい</a>
<a href="xxxxx">あああ<img src="yyyyy" />いいい</a>
<a href="xxxxx"><img src="yyyyy" /><div>あああ<div></a>
みたいに、<a> の中は <img> 以外のゴミも入ってきます。
※ゴミは無視したい
<a href="xxxxx"><img src="yyyyy" /></a>
<a href="xxxxx">あああ<img src="yyyyy" /></a>
<a href="xxxxx"><img src="yyyyy" />いいい</a>
<a href="xxxxx">あああ<img src="yyyyy" />いいい</a>
<a href="xxxxx"><img src="yyyyy" /><div>あああ<div></a>
みたいに、<a> の中は <img> 以外のゴミも入ってきます。
※ゴミは無視したい
513デフォルトの名無しさん
2018/05/25(金) 14:10:36.40ID:dgrSTrid514デフォルトの名無しさん
2018/05/25(金) 16:20:05.07ID:fgSfMucA >>513
<a href=""></a><img src="1.jpg"><a href=""></a>
<a href=""></a><img src="1.jpg"><a href=""></a>
515デフォルトの名無しさん
2018/05/25(金) 20:00:28.32ID:OUvr9ihJ 頑張ってみてもこの程度が限界
https://regex101.com/r/VYrYNO/1
で, >>511がHTMLの解析を正規表現だけでやる理由は何だ?
Pythonのhtml.parser, RubyのNokogiri, PHPならGoutter, それ以外の言語でも間違いなくHTMLパーサは誰かしら作ってる
そんな中で何故正規表現だけで?ぶっちゃけこういう用途には向いてない, というかHTMLの構文規則は正規言語を超えるんだけど, 分かってる?
https://regex101.com/r/VYrYNO/1
で, >>511がHTMLの解析を正規表現だけでやる理由は何だ?
Pythonのhtml.parser, RubyのNokogiri, PHPならGoutter, それ以外の言語でも間違いなくHTMLパーサは誰かしら作ってる
そんな中で何故正規表現だけで?ぶっちゃけこういう用途には向いてない, というかHTMLの構文規則は正規言語を超えるんだけど, 分かってる?
516デフォルトの名無しさん
2018/05/25(金) 20:29:09.95ID:rhJz1xPv パーサかましてXPathで必要な情報だけ抜くのが基本だしな
どうしても使えないっていう理由があるなら仕方ないけど
どうしても使えないっていう理由があるなら仕方ないけど
517デフォルトの名無しさん
2018/05/25(金) 21:21:37.93ID:lQiYp+1p 鬼雲限定
<a (?~</a>)<img src="([^"]+)"[^>]*>(?~<a )</a>
<a (?~</a>)<img src="([^"]+)"[^>]*>(?~<a )</a>
518デフォルトの名無しさん
2018/05/25(金) 22:28:52.14ID:Cqv+6nk2 ■変更前
004a34
A521n2
785b66
■変更後
0049934
99521992
7859966
----------------------
数値以外を99に置換したいです
お願いします
004a34
A521n2
785b66
■変更後
0049934
99521992
7859966
----------------------
数値以外を99に置換したいです
お願いします
519デフォルトの名無しさん
2018/05/25(金) 23:31:17.71ID:gd/oxjVv 木構造のものは、正規表現じゃ無理
1< 2< abc 3> 4>
2<からの最短マッチで、対応する3>を取れるけど、
1<からの最短マッチで、対応する4>を取れない。
3>にマッチしてしまうから
1< 2< 3< abc 4> 5> 6>
これでも、2<と5>をマッチさせられない。
最長・最短マッチでも、マッチしない
CSS セレクターを使う、jQuery, RubyのNokogiri などを使え。
これらの使い方は、ほぼ同じ
1< 2< abc 3> 4>
2<からの最短マッチで、対応する3>を取れるけど、
1<からの最短マッチで、対応する4>を取れない。
3>にマッチしてしまうから
1< 2< 3< abc 4> 5> 6>
これでも、2<と5>をマッチさせられない。
最長・最短マッチでも、マッチしない
CSS セレクターを使う、jQuery, RubyのNokogiri などを使え。
これらの使い方は、ほぼ同じ
520デフォルトの名無しさん
2018/05/25(金) 23:43:29.83ID:OUvr9ihJ >>518
数値以外と簡単に言うが改行文字や空白等の扱いはどうするんだ
変換対象文字をちゃんと明示しないと
/[^0-9]/99/g
こんなもんが欲しいわけではあるまい
とりあえずASCII印字可能文字に限るなら
/[\x21-\x2F\x40-\x7E]/99/g
だが当然マルチバイト文字は対象外
数値以外と簡単に言うが改行文字や空白等の扱いはどうするんだ
変換対象文字をちゃんと明示しないと
/[^0-9]/99/g
こんなもんが欲しいわけではあるまい
とりあえずASCII印字可能文字に限るなら
/[\x21-\x2F\x40-\x7E]/99/g
だが当然マルチバイト文字は対象外
521デフォルトの名無しさん
2018/05/25(金) 23:44:35.69ID:OUvr9ihJ \x40じゃなくて\x3Aだわ
522デフォルトの名無しさん
2018/05/26(土) 10:42:28.41ID:oqQZJpqn >>517
非包含オペレータか
非包含オペレータか
523デフォルトの名無しさん
2018/05/26(土) 17:59:00.22ID:xbMfHZm2 >>519
再帰を使えば、対応する括弧のネスト対応ぐらいならできるらしいよ(鬼雲、PCRE)
<([^<>]++|(?R))*>
# [^<>]++は(?>[^<>]+)としてもよい(どっちもバックトラックしないと思う)
# (?R)は、(?0)とも書ける
# (<([^<>]++|(?1))*>)
\g<-n>を使ってもできる(鬼雲だけ?)
(<(?:\g<-1>|[^<>])*>)
# \g<-1>は(?-1)とも書ける
# ここでは\g<-1>を先に書いたが上と同じく後ろに書いても同じ
再帰を使えば、対応する括弧のネスト対応ぐらいならできるらしいよ(鬼雲、PCRE)
<([^<>]++|(?R))*>
# [^<>]++は(?>[^<>]+)としてもよい(どっちもバックトラックしないと思う)
# (?R)は、(?0)とも書ける
# (<([^<>]++|(?1))*>)
\g<-n>を使ってもできる(鬼雲だけ?)
(<(?:\g<-1>|[^<>])*>)
# \g<-1>は(?-1)とも書ける
# ここでは\g<-1>を先に書いたが上と同じく後ろに書いても同じ
524デフォルトの名無しさん
2018/05/26(土) 19:07:35.21ID:vUfk79H6 https://regex101.com/r/VYrYNO/1
なぁこれメンテしたいか?というか出来るか?なぁ?
(?i:<a(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*>)
((?:
(?i:<img(?:\s+(?:src="([^"]+)"|[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?))*(?:\s*\/)?>)
|(?i:<([a-z][a-z0-9]*)(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*>(?1)<\/\3>)
|(?i:<[a-z][a-z0-9]*(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*\s*\/>|.*?))*)
(?i:<\/a>)
なぁこれメンテしたいか?というか出来るか?なぁ?
(?i:<a(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*>)
((?:
(?i:<img(?:\s+(?:src="([^"]+)"|[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?))*(?:\s*\/)?>)
|(?i:<([a-z][a-z0-9]*)(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*>(?1)<\/\3>)
|(?i:<[a-z][a-z0-9]*(?:\s+[a-z][a-z0-9]*(?:=(?:"[^"]*"|'[^']+'))?)*\s*\/>|.*?))*)
(?i:<\/a>)
525デフォルトの名無しさん
2018/05/26(土) 19:08:54.60ID:vUfk79H6526デフォルトの名無しさん
2018/06/23(土) 01:47:09.94ID:19kQ7FFf527デフォルトの名無しさん
2018/06/24(日) 13:33:59.68ID:wSHpLaLO 文字列の中から数字13桁(それ未満でも超えてもNG)を抽出するにはどうしたらいいでしょう
JANコードらしきを抜き取りたいのです。
候補を抽出してから後でチェックデジット計算しますので
数字13桁のみで大丈夫です。
JANコードらしきを抜き取りたいのです。
候補を抽出してから後でチェックデジット計算しますので
数字13桁のみで大丈夫です。
528デフォルトの名無しさん
2018/06/24(日) 15:06:08.45ID:F1zD07yq 数字40桁くらい連続してたらどうする?
529デフォルトの名無しさん
2018/06/24(日) 16:56:18.47ID:wSHpLaLO 40桁はJANコードじゃないので除外したいです
530デフォルトの名無しさん
2018/06/24(日) 17:16:44.02ID:1DBcJ9cD \b[0-9]{13}\b
とか
(?<![0-9])[0-9]{13}(?![0-9])
とか
携帯だから試してない
とか
(?<![0-9])[0-9]{13}(?![0-9])
とか
携帯だから試してない
531530
2018/06/24(日) 20:41:43.34ID:LPLL+qJx 先頭と末尾も考慮すると
https://regex101.com/r/xT760t/2
(?:(?<=[^0-9])|^)[0-9]{13}(?:(?=[^0-9])|$)
ただかなりバックトラックするから性能は悪い
どうせチェックディジット確認するなら13桁以上で全抽出して桁数チェック追加した方がマシに見える
https://regex101.com/r/xT760t/4
[0-9]{13,}
https://regex101.com/r/xT760t/2
(?:(?<=[^0-9])|^)[0-9]{13}(?:(?=[^0-9])|$)
ただかなりバックトラックするから性能は悪い
どうせチェックディジット確認するなら13桁以上で全抽出して桁数チェック追加した方がマシに見える
https://regex101.com/r/xT760t/4
[0-9]{13,}
532デフォルトの名無しさん
2018/06/24(日) 23:39:40.09ID:chBT6m1a 結構、難しい
A <13桁の数字> B
A の部分が、文字列の先頭か、数字以外で、
B の部分が、文字列の末尾か、数字以外
A <13桁の数字> B
A の部分が、文字列の先頭か、数字以外で、
B の部分が、文字列の末尾か、数字以外
533デフォルトの名無しさん
2018/06/25(月) 07:16:09.30ID:HTnjHonA 文字列操作可能なら両端に数字以外の文字を付加して
[^0-9][0-9]{13}[^0-9]
かな
[^0-9][0-9]{13}[^0-9]
かな
534デフォルトの名無しさん
2018/06/25(月) 08:32:20.35ID:g3low2hV535デフォルトの名無しさん
2018/06/25(月) 09:21:19.58ID:9/L2g6Oc >>534
せやな, 否定前後読みならそのままでよかったわ(肯定で試しちゃった)
ただどのみちバックトラック多くて無駄だから正規表現だけでやるのでなければ13桁以上でマッチングして桁数判定入れるべきだと思う
せやな, 否定前後読みならそのままでよかったわ(肯定で試しちゃった)
ただどのみちバックトラック多くて無駄だから正規表現だけでやるのでなければ13桁以上でマッチングして桁数判定入れるべきだと思う
536デフォルトの名無しさん
2018/06/25(月) 21:12:44.36ID:lRi8bnr9 13桁を超えていても候補として受け取っておいて
チェックデジットの計算の手前で落とします。
どうもありがとうございました。
チェックデジットの計算の手前で落とします。
どうもありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 風呂入らないと下半身温まらない
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
