Regular Expression(正規表現) Part12at TECH
Regular Expression(正規表現) Part12 - 暇つぶし2ch2:デフォルトの名無しさん
13/12/17 14:21:56.13
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;

3:デフォルトの名無しさん
13/12/17 14:25:36.11
◆関連サイト
正規表現メモ
URLリンク(www.kt.rim.or.jp)
Perl正規表現雑技
URLリンク(www.din.or.jp)
Regular Expression(Riue ちゃんの正規表現講座)
URLリンク(www.sixnine.net)
正規表現パズル
URLリンク(www.geocities.jp)
詳説 正規表現
URLリンク(www.oreilly.co.jp)
正規表現プログラミングFAQ
URLリンク(capslockabcjp.kitunebi.com)
JScript 正規表現の概説
URLリンク(msdn.microsoft.com)
.NET Framework 正規表現言語要素
URLリンク(msdn.microsoft.com)
【 初心者 】 正規表現 【 入門 】
URLリンク(funcchan.blog16.fc2.com)

4:デフォルトの名無しさん
13/12/17 14:28:55.56
◆関連スレ
[UNIX板] 正規表現
スレリンク(unix板)
[WebProg] 正規表現道場 Part2
スレリンク(php板)


◆前スレ
[1] スレリンク(tech板)
[2] スレリンク(tech板)
[3] スレリンク(tech板)
[4] スレリンク(tech板)
[5] スレリンク(tech板)
[6] スレリンク(tech板)
[7] スレリンク(tech板)
[8] スレリンク(tech板)
[9] スレリンク(tech板)
[10] スレリンク(tech板)
[11] スレリンク(tech板)

5:デフォルトの名無しさん
13/12/17 15:28:30.72


6:デフォルトの名無しさん
13/12/17 15:42:08.77
スレ建ておつ

7:デフォルトの名無しさん
13/12/17 16:58:38.41
>>3
前回不備のあったリンクが直ってるな

8:デフォルトの名無しさん
13/12/17 20:55:54.43
APAスタイルで書かれた参考文献から各フィールドを抜き出したいんだけど、正規表現でやると楽?
著者不明や日付不明、その他タイトルがあったりなかったりするけども。
Perlで最終的にデータベースに流し込みたい。

9:デフォルトの名無しさん
13/12/17 21:09:33.90
APAスタイルってなに

10:デフォルトの名無しさん
13/12/17 21:33:24.69
江南スタイルのことです。

11:デフォルトの名無しさん
13/12/17 21:37:33.08
海外の論文読んだらAPAで書いてあるやつ結構あるだろ

12:デフォルトの名無しさん
13/12/17 21:44:01.17
なんだ。
論文読んだことのない奴には
分からない話か。

13:デフォルトの名無しさん
13/12/17 22:24:05.27
APAスタイル調べてみたけど難しそう

切り分けと判定は別にしたほうがいいような

14:デフォルトの名無しさん
13/12/17 22:41:19.96
●Regular Expressionの使用環境
Perl

●検索か置換か?
検索

●説明
ミドルネームを含む名前も、ミドルネームを含まない名前も分解して抽出したい
また、名前の区切りはスペースやドットなど色々なものに対応したい

●対象データ
Edward Snowden
Edward.Joseph.Snowden
エドワード・スノーデン
エドワード=ジョセフ=スノーデン

●希望する結果
(値を入れているわけではなく、$1~$3に入っていて欲しいものです)
$1 = "Edward"   $2 = ""   $3 = "Snowden"
$1 = "Edward"   $2 = "Joseph"   $3 = "Snowden"
$1 = "エドワード"   $2 = ""   $3 = "スノーデン"
$1 = "エドワード"   $2 = "ジョセフ"   $3 = "スノーデン"

15:デフォルトの名無しさん
13/12/17 23:59:19.63
>>14
Part11スレへどうぞ

16:デフォルトの名無しさん
13/12/18 00:11:20.15
>>14
どうしても$1~$3に入ってなきゃダメかね?

my $fname;
my $mname;
my $lname;

if ( $buf =~/([a-zA-Z]*)[\s\.・==]([a-zA-Z]*)[\s\.・==]*([a-zA-Z]*)/ ){
  $fname = $1;
  if (length($3)==0){
    $lname = $2;
  }else{
    $mname = $2;
    $lname = $3;
  }
}

17:デフォルトの名無しさん
13/12/18 00:13:22.40
>>14
先ずは正規化して、どれかのルールに置き換えた方がいいと思う。

18:デフォルトの名無しさん
13/12/18 00:22:55.22
>>16
日本語は?

19:デフォルトの名無しさん
13/12/18 00:45:13.94
sub namechk{
$buf=shift; #引数として名前を受け取る
if ($buf=~/(.+)(\s|\.|=|・)(.+)(\s|\.|=|・)(.+)/){
return ($1,$3,$5);
}elsif ($buf=~/(.+)(\s|\.|=|・)(.+)/){
return ($1,"",$3);
}
}
こっちのほうがいい。

20:デフォルトの名無しさん
13/12/18 00:58:54.76
正規化しろ

21:デフォルトの名無しさん
13/12/18 01:01:51.51
正規化しろ

22:デフォルトの名無しさん
13/12/18 01:12:12.27
正規表現縛りな奴って何考えて生きてんの?

23:デフォルトの名無しさん
13/12/18 01:42:16.31
正規化したら1行余計なものが増えるじゃん
sub namechk{
 $buf = shift;
 $buf =~s/(\s|\.|=|=|・)/"."/meg;
 if ( $buf =~/(.+)\.(.+)\.(.+)/ ){
  return ( $1 , $2 , $3 );
 }elsif ( $buf =~/(.+)\.(.+)/ ){
  return ( $1 , "" , $2 );
 }
}

24:デフォルトの名無しさん
13/12/18 15:04:44.65
@namearr = split( /(\s|\.|=|=|・)/ , $name );
とかそういう話じゃなくて?

25:デフォルトの名無しさん
13/12/18 22:15:22.03
すいません、2chを普通のブラウザで開いたときみたいに
リンク踏んだら確認画面が出て、確認画面のリンクをクリックしたら別ページに飛ぶ、
というのは正規表現でできるのでしょうか?
PHPです

26:デフォルトの名無しさん
13/12/18 22:35:15.56
正規表現にもPHPにもクリックなんて概念はない

エスパーするとHTMLの勉強から始めるべき。

27:25
13/12/18 22:54:58.53
>>26
いえ、HTMLのリンクタグがあるじゃないですか
投稿のときはHTMLのリンクタグを書いてなくてもURLを投稿するだけでリンクタグが適用されるじゃないですか

28:デフォルトの名無しさん
13/12/18 23:15:24.49
要はurlをリンクタグにすればいいだけか?

29:デフォルトの名無しさん
13/12/18 23:36:58.18
釣りなのか本当にバカなのかわからん質問が多い板だぜまったく

30:デフォルトの名無しさん
13/12/19 00:32:05.32
>>27
リンクじゃなくてアンカーだと思うが。
それなら、置換対象となる文字列と、置換後の期待するアンカー要素を提示すれば答えられるのでは。
ということが>>2に書いてある。

31:デフォルトの名無しさん
13/12/19 18:18:46.43
PHPの正規表現を知らないからPerlで

$txt=~s/(http:[a-z])/"<a href='$1'>$1</a>"/;

32:デフォルトの名無しさん
13/12/19 18:31:22.37
>>31
スキームはhttpだけじゃないし、その後もa-zだけじゃないだろう。
URLリンク(www.w3.org)

33:デフォルトの名無しさん
13/12/19 19:00:10.10
http
ttp
https
ttps
ftp
辺りかな

34:デフォルトの名無しさん
13/12/19 19:02:44.69
>>31
mailtoもあるし、geoとかtelとか独自っぽいものもあったりなかったり。

35:デフォルトの名無しさん
13/12/19 19:44:40.19
mailtoはリンクタグの中にしか書かないからURL文字列のリンク化には必要なくない?

36:デフォルトの名無しさん
13/12/19 19:49:05.13
URLとメールアドレスの違いってなんだっけ
文章に含まれてるURLっぽい部分が
URLかメールアドレスか判別するのって
正規表現でできるかね

37:デフォルトの名無しさん
13/12/19 19:53:57.46
書けないわけじゃないだろ。
メールの署名とかに書くぞ。

単にURLと見做す補完機能が仕様にないだけ。それは正規表現の問題ではない。

38:デフォルトの名無しさん
13/12/19 20:03:41.12
$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s])/"<a href='$1'>$1</a>"/eg;

39:デフォルトの名無しさん
13/12/19 20:25:27.40
>>38
結果がおかしいぞ
http:/
までしかリンクにならない

40:デフォルトの名無しさん
13/12/19 20:31:37.69
+が抜けてるんだろ

$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s]+)/"<a href='$1'>$1</a>"/eg;

41:デフォルトの名無しさん
13/12/19 20:35:28.31
[]の中はエスケープ不要なんじゃなかった。言語の方のエスケープなのかな。

42:デフォルトの名無しさん
13/12/19 20:41:06.60
試してみたけどエスケープないとエラーが出た。
Perlの仕様だと思われ。

43:デフォルトの名無しさん
13/12/19 20:46:23.51
>>40
それだけじゃないからw
「+」付けてもこうなるwww

$line = "You have to visit URLリンク(www.seiki.com) and URLリンク(www.hyougen.com) !!";
$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s]+)/"<a href='$1'>$1<\/a>"/eg;
print $line;

You have to visit <a href='URLリンク(www.seiki.com) and http'>URLリンク(www.seiki.com) and http</a>://www.hyougen.com/ !!

44:デフォルトの名無しさん
13/12/19 21:04:59.70
\sが余計なんだろ

$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?]+)/"<a href='$1'>$1</a>"/eg;

45:デフォルトの名無しさん
13/12/19 21:57:08.85
>>44
こういう正規表現って毎回書くの?
それとも関数作って関数の中にこれ一行だけ書くの?

46:デフォルトの名無しさん
13/12/19 22:04:16.92
>>45
どちらがわかりやすいかで考えれば
答えは自ずと出てくるだろ。

47:デフォルトの名無しさん
13/12/19 22:13:26.50
ここってUnEditorの正規表現の質問もOK?

48:デフォルトの名無しさん
13/12/19 22:18:35.54
>>45
「こういう」が何を指してるか知らんけど、今はサブルーチンにしてしまうのが一般的。
サブルーチン作ると重くなるとか言ってたマシンスペックの低い時代ならマシンスペックと相談だろうね。
今はマシンスペックがかなり高いから、余程のことがない限り可読性重視。

あと、保守性の問題もある。
例えば>>44の正規表現からftpを外そうと思ったときに、あちこちに同じ正規表現があったら全部変更していく必要がある。
サブルーチンにしておけば1箇所変更すればよい。

49:デフォルトの名無しさん
13/12/19 22:50:21.72
>>47
調べたら鬼車じゃん
いいんじゃね

50:デフォルトの名無しさん
13/12/19 23:25:32.19
●Regular Expressionの使用環境
Perl 5.10.1

●検索か置換か?
置換

●説明
CSSにおいて、任意のクラスの任意の項目を変更したい

●対象データ
・・・ここまで他のクラス・・・
.test{
   background-color: #ffffff;
   color: #000000;
   padding: 0px;
   margin: 0px;
}
・・・ここから他のクラス・・・

●希望する結果
例えば、testクラスのpaddingを4pxにしたい

・・・ここまで他のクラス・・・
.test{
   background-color: #ffffff;
   color: #000000;
   padding: 4px;
   margin: 0px;
}
・・・ここから他のクラス・・・
(クラス内部でインデントのために全角スペースを使っていますが、実際の運用ではタブ1つ分です)
(クラスによって項目の数が違います)

51:デフォルトの名無しさん
13/12/20 03:44:23.37
ここは重複スレです。

本スレ誘導
正規表現 Part11
スレリンク(tech板)

52:デフォルトの名無しさん
13/12/20 03:47:57.61
s/(\.test\{[^}]*padding:\s*)[^;]+/$14px/g;

53:デフォルトの名無しさん
13/12/20 03:52:58.58
>>51
チョンの本スレ宣伝はここにも来たか

54:デフォルトの名無しさん
13/12/20 04:49:30.72
part10 1340383120.dat 2012/06/23(土) 01:38:40.22~2013/03/12(火) 22:57:24.75
part11 1362913813.dat 2013/03/10(日) 20:10:13.34~2013/12/19(木) 20:34:23.12
偽スレ 1363769640.dat 2013/03/20(水) 17:54:00.46~

part11が立ってから10日遅れ
part10が埋まってからでも8日遅れ
もう重複とかいうレベルですらなく、ただの荒らしだな
何が嫌でこんな宣伝してるのか……part10終盤を再現したいとか?

スレリンク(tech板:102番)
102 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/17(火) 18:44:06.65
重複重複うるさいから確認してみたら、
正規の次スレが立って1週間以上経ってからこの偽物スレが立ってる。

どう考えても確信犯。
このスレを立てたのは恐らく本物のキチガイ。

55:デフォルトの名無しさん
13/12/20 07:02:29.39
>>54
スレタイを勝手に変えてしまったから、どちらとも言えないけどね。
なんとかスタンダードとやらで、こちらが正統でいいんじゃないの。

56:デフォルトの名無しさん
13/12/20 16:49:34.58
正規表現って環境依存のイメージだけど、いわゆる「正規表現」ってあるの?

例えばC言語でも、
コンパイラの独自拡張を除いたいわゆる「C言語」ってあるじゃん。
そういう意味でいわゆる「正規表現」ってあるの?

57:デフォルトの名無しさん
13/12/20 18:55:07.78
>>56
POSIXとかPCREのこと?
CもANSI C89とかいろいろあるでしょう。

58:デフォルトの名無しさん
13/12/20 19:07:50.28
>>56
Posix正規表現だけでもSRE、BRE、EREと3種あるくらいで所謂とか本家とかは
聞いたことないですね。
C++11でEcmascriptの正規表現もサポートとしていることや、利用者数、使い
やすさ等を鑑みてJSの正規表現を中心に考えてみてはどうでしょうか。
自分の製品に正規表現エンジンを組み込む場合は。

59:デフォルトの名無しさん
13/12/20 21:05:18.16
>>52
短くていいな。
俺も昨日ちょっと考えてたけど、もうちょい長くなった。

60:50
13/12/20 22:57:20.64
>>52
ありがとうございます!
もう少しでCSSを解析してハッシュの配列にしてからやるところでした!

61:デフォルトの名無しさん
13/12/21 02:56:45.92
>>55
part10終盤の様相からしたら仕方ない。
スレタイ変えた程度であの手の馬鹿が引っ込むってのも不自然だが、
自演だとしても質問スレ系みたいに変なルール追加されたわけでもなさげだし。

62:デフォルトの名無しさん
13/12/21 03:04:06.35
パーサとかって内部では正規表現使ってパースしてんのかね?
何のパーサかにもよるだろうけど、RSSのパーサとか

63:デフォルトの名無しさん
13/12/21 03:50:16.65
>>62
見てみりゃいいじゃん。

64:デフォルトの名無しさん
13/12/21 03:53:20.96
正規表現も使っているが、
正規表現だけでは限界があるので
単語の判断ぐらいに使ってる。

65:デフォルトの名無しさん
13/12/21 04:00:03.52
>>62
RSSのパーサってか、XMLのパーサだな。

66:デフォルトの名無しさん
13/12/21 04:39:34.92
そもそも正規表現自体が形式言語理論畑の言葉・概念がパターンマッチに流用されたものだからなぁ…
正しい定義で言うといわゆる正規表現は正規表現と呼ぶべきではないとか言う事になりそうですらある
逆にいわゆる正規表現とは全く異なるBNFとかの方が元の定義で言う正規表現らしかったりすらする程
そしてXMLはExtended BNFで定義されてるから、Extended BNFを正規表現と呼ぶならXMLパーサ=正規表現処理エンジンという事に

真面目に実装の話に戻ると、何らかの正規表現言語で言語を定義してそれをパーサジェネレータに食わせてパーサ作ったりするはず
ここで使う正規表現はいわゆる正規表現で無い事も多いが、正規表現を使っているといえば使っている
出力されたパーサには正規表現が含まれ・・・・・・ないんじゃないかなぁ・・・・・・

67:デフォルトの名無しさん
13/12/21 11:16:20.61
JScriptのエンジンって何?

68:デフォルトの名無しさん
13/12/22 00:37:07.32
質問です

C言語のソースコードに以下の条件に従ってスペースを入れたいのですが正規表現でどう書けば良いでしょうか?

1. 関数のカッコの中では、カッコの前後、及びカンマの前後に半角スペースを1つ入れたい
2. 但し、関数の中で文字列が引数になっている場合、その文字列に含まれるカッコやカンマの前後には何も入れない
3. 但し、ソースコード全体では、既に希望通りの半角スペースの入っている部分と、まだ入っていない部分がある

鬼車5.9.2です
よろしくお願いします

69:デフォルトの名無しさん
13/12/22 01:05:58.47
>>66
正規表現は文字列の集合を表すもの。
BNFは文脈自由文法を表すもの。
従って、正規表現で表現できるものはBNFでも表現可能だが、逆は真でない。
例えば、XMLの文法を表現するのにBNFが使えるが、正規表現では無理。

70:デフォルトの名無しさん
13/12/22 01:12:21.33
BNFは正規表現ではないの?

71:デフォルトの名無しさん
13/12/22 01:19:10.65
BNFが正規表現であると定義する世界ではORだけあれば全ての言語を記述できる。
可能なすべてのパターンをORでつなげばいいから。

72:デフォルトの名無しさん
13/12/22 01:21:57.64
>>69
あー、右正規文法か左正規文法を表現するのが正規表現で、
文脈自由文法は右正規文法と左正規文法を同時に含みうるのか。

ただどっちにしてもそこで言う正規表現ってこのスレで扱う正規表現じゃ無くてその元ネタの方だよね。

73:デフォルトの名無しさん
13/12/22 01:25:47.38
君は何が何でも自分が正しいと主張したい人のようだね。

74:デフォルトの名無しさん
13/12/22 01:26:53.77
でも結局のところ、Ajaxとかで取得したRSSをJSで加工するときは正規表現使うよな

75:デフォルトの名無しさん
13/12/22 01:40:04.42
>>74
DOMで扱う場合は使わない

76:デフォルトの名無しさん
13/12/22 01:48:18.97
>>67
JavaScriptの正規表現エンジンはブラウザ独自。
だからIEで挙動が違ったり、Chromeが正規表現のエンジンを高速化したりということがある。

何年か前からブラウザは動作速度合戦になって、各ブラウザ共色々テコ入れしてる。
JavaScriptとその中の正規表現エンジンもかなり動作速度に影響するから当然テコ入れ対象。

77:デフォルトの名無しさん
13/12/22 01:51:07.17
EMCAで規格が決まっています。

78:デフォルトの名無しさん
13/12/22 02:54:20.70
規格とエンジンは別だろ
規格に基づいてエンジン作るわけだから

79:デフォルトの名無しさん
13/12/22 02:57:41.75
Wikiって文法解析してHTML生成してるけど、あれは正規表現で解析してるの?

80:デフォルトの名無しさん
13/12/22 03:06:17.95
念のためにきくけど、正規表現で住所を切り分けるのって無理だよな

81:デフォルトの名無しさん
13/12/22 03:20:59.29
>>80
要件による

82:デフォルトの名無しさん
13/12/22 03:22:31.90
IEのJSの正規表現の挙動がおかしいのは昔話題になってなかったっけ。

83:デフォルトの名無しさん
13/12/22 05:25:17.33
>>77
ECMA?

84:デフォルトの名無しさん
13/12/22 10:09:35.44
>>79
全てがそうとは限りませんが、俺が見た範囲ではそうでした。

85:デフォルトの名無しさん
13/12/22 12:32:08.28
PHPです

HTMLのIMGタグから、ファイル名と、
もし幅か高さが指定されていればそれも抽出したいです

<img src="test.jpg">
<img src="test2.gif" width="200">
<img src="test3.png" width="200" height="160">

86:デフォルトの名無しさん
13/12/22 12:47:55.74
imgタグの仕様が分からなきゃ何とも言えないだろ
widthはパーセント指定できるの?構文解析の仕様は?

87:デフォルトの名無しさん
13/12/22 12:56:13.97
>>85
HTMLパーサでパースしろ
そしてここには二度と来るな

88:デフォルトの名無しさん
13/12/22 13:00:48.21
>>68
鬼車知らんけど、
([\(,])([.\s]*?)([,\)])
かな。

89:デフォルトの名無しさん
13/12/22 13:25:48.13
UTF-8でマルチバイト文字にのみマッチさせる正規表現はありますか?

90:デフォルトの名無しさん
13/12/22 13:34:14.52
ASCIIの範囲以外ならマルチバイトだろ。

91:デフォルトの名無しさん
13/12/22 13:44:18.71
>>90
数字だったら\dで表せるけどそういう簡単なのないですか?

92:デフォルトの名無しさん
13/12/22 14:55:17.89
[^アスキー全文字]+

93:デフォルトの名無しさん
13/12/22 15:38:51.59
POSIX文字クラスでググレ

94:デフォルトの名無しさん
13/12/22 19:33:09.96
>>80
四日市市とかで切り分けに失敗する自信がある

95:デフォルトの名無しさん
13/12/22 20:53:52.69
廿日市市と八日市市、他に何があったかな?
仮に[^:ascii:]{1,6}市?市としても、市名の次に市が付く町名が来たら厄介だな。

POSIX使ってみた([^:ascii:])
知らない人は「鬼車 正規表現」でググればわかる。
WSHとかでは使えないみたいだけど。

96:デフォルトの名無しさん
13/12/22 21:53:21.53
俺らの脳は市町村をどうやって切り分けてんだろ

97:デフォルトの名無しさん
13/12/22 22:37:59.73
>>95
四日市には市場町という地名があるようだ…

98:デフォルトの名無しさん
13/12/22 23:06:47.37
ワラタw

99:デフォルトの名無しさん
13/12/22 23:10:22.38
結局ブラウザごとにJSの正規表現エンジンって違うの?

100:デフォルトの名無しさん
13/12/22 23:37:00.86
>>97
なりたちからして自然だと思うが

101:デフォルトの名無しさん
13/12/23 01:00:16.43
>>80>>95
もう既存の市町村名から正規表現生成するスクリプト作ってしまったほうが良い気が

102:デフォルトの名無しさん
13/12/23 07:58:36.38
>>101
既存の市町村名全部持って、普通にマッチングした方がいいだろ...

103:デフォルトの名無しさん
13/12/23 14:36:10.76
これだけ注意すればよさそうだな
四日市市
野々市市
廿日市市

104:デフォルトの名無しさん
13/12/23 14:39:25.15
ちなみに八日市市は現存しない
URLリンク(www.city.higashiomi.shiga.jp)
平成17年2月11日には、
1市4町(八日市市・永源寺町・五個荘町・愛東町・湖東町)が合併し「東近江市」が誕生しました。

105:デフォルトの名無しさん
13/12/23 14:42:30.11
プログラマを救うために住所表記に対する正規表現の使用を禁止する法律が求められている

106:デフォルトの名無しさん
13/12/23 15:44:28.03
住所はいろいろあるからねー
URLリンク(www.addressmatch.jp)

107:デフォルトの名無しさん
13/12/23 19:50:41.11
>>68
2番目の条件がきつい

108:デフォルトの名無しさん
13/12/23 23:14:24.79
引数になってる文字列のコンマを別のものに置き換えて、
それからやったらどうよ
それでソースコードのコンマを処理し終わったらもとに戻す

[[comma]]とか

109:デフォルトの名無しさん
13/12/23 23:53:19.75
文字列の中に[[comma]]があったらどうする気だ。

110:デフォルトの名無しさん
13/12/24 04:03:10.05
>>102
大差なくね?
ああまあ市町村名DBをそのまま食わせられるからメンテ楽ってのはあるか…
しかし一度regexp.exec(str)すれば即結果が得られるってのもそれはそれで楽
>>104
古い住所入れる奴が居るから・・・
>>108-109
メタ文字決めて先にメタ文字のエスケープしろよ、定番だろ。

111:デフォルトの名無しさん
13/12/24 15:37:26.19
クリスマス関連の文字列を見たくないからネットサーフィンの際に
クリスマス関連の文字列でマッチしてクリスマス関連の文字列を含むウェブページをフィルタリングしたいのですが
どういう正規表現で書けばいいでしょうか

112:デフォルトの名無しさん
13/12/24 17:47:45.62
>>111
s/クリスマス関連/あぼーん/g

113:デフォルトの名無しさん
13/12/24 19:25:31.28
ブラウザの設定をアラビア語とかペルシャ語にしたらどうだい

114:デフォルトの名無しさん
13/12/25 12:13:30.69
s/.*(クリスマス|X'mas).*/あぼーん/g

115:デフォルトの名無しさん
13/12/25 13:17:37.81
Perl

痴漢

$1200.00
\24980000

3桁ごとに「,」を入れたい
$1,200.00
\24,980,000

116:デフォルトの名無しさん
13/12/25 18:08:29.45
s/(\d\d\d(\.|$))/,$1/

117:デフォルトの名無しさん
13/12/25 19:07:10.42
このスレにいる奴はこれどれくらいできる?
URLリンク(regex.alf.nu)

118:デフォルトの名無しさん
13/12/25 22:14:50.89
>>117
プログラミングの役に立たない無意味な正規表現を作る能力で何の能力を測るのかが不明。

119:デフォルトの名無しさん
13/12/26 11:54:11.09
正規表現を使ったただの遊びで、
何か測るとか 考えすぎっつーか余裕なさすぎ

120:デフォルトの名無しさん
13/12/26 12:16:44.97
>>117
ちゃんとマッチする物作って、点数が低いとかよくわからん。
マッチさせないギリギリを狙うゴルフなんだろか。

121:デフォルトの名無しさん
13/12/26 13:58:48.86
>>116
それじゃダメだろ

122:デフォルトの名無しさん
13/12/26 15:39:20.51
じゃあお前書いてみろよ

123:デフォルトの名無しさん
13/12/26 15:48:59.72
>>120
パターンの文字数が少ない方が点数が上がる
ドット使いまくり

124:デフォルトの名無しさん
13/12/26 16:07:49.11
Plain strings (205)
Anchors (204)
Ranges (202)
Backrefs (197)
Abba (183)
A man, a plan (165)
素数の逆転がうまくいかねー

125:デフォルトの名無しさん
13/12/26 18:48:08.56
>>117
これ解析して正規表現を生成するプログラムは書くことできる?

126:デフォルトの名無しさん
13/12/26 18:48:35.02
>>125
当たり前だろ

127:デフォルトの名無しさん
13/12/26 20:13:22.44
>>123
なるほど、fooとか入れてくのね。
ありが㌧。

128:デフォルトの名無しさん
13/12/27 06:30:50.86
>>126
Prime(0) を生成するプログラムお願いします。

129:デフォルトの名無しさん
13/12/27 08:52:28.55
Plain strings (207) foo

130:デフォルトの名無しさん
13/12/27 18:44:21.67
>>124
^(xx+?)\1+$
の逆だから素直に
^(?!(xx+)\1+$)

131:デフォルトの名無しさん
13/12/27 23:49:58.74
すいません。VBScriptで
抽出した文字列にダブりがあります。
例:
AAA
BBB
AAA
CCC
BBB
CCC
これを
AAA
BBB
CCC
のように抽出し直すにはどうすればいいでしょうか?

132:デフォルトの名無しさん
13/12/28 00:43:17.44
>>131
cat text.txt | sort | uniq

133:デフォルトの名無しさん
13/12/28 06:02:29.57
>>132
重複を削れといっているようだが、整列し直せとは言っていない。

134:デフォルトの名無しさん
13/12/28 09:24:51.01
>>133
Unixの勉強しましょうね

135:デフォルトの名無しさん
13/12/28 11:41:43.23
>>131
正規表現スレだぞ
根本的に勘違いしてる
死んで良いよ

136:デフォルトの名無しさん
13/12/28 12:25:00.00
>>134
?

137:デフォルトの名無しさん
13/12/28 12:31:59.03
>>133
cat text.txt | sort | uniq

uniqの部分をしっかり見ろよ

138:137 ようわからん
13/12/28 12:38:28.75
AAA  AAA  AAA  AAA
BBB  BBB  BBB  BBB
AAA          
CCC  CCC  CCC  CCC
BBB  BBB       
CCC  CCC  CCC    
この方法だとuniqしたく無い場合に良い。

139:デフォルトの名無しさん
13/12/28 12:43:27.01
整列が要件に入っていないのに勝手に整列させるのはまずいって言いたいんじゃないの?
するとsortが使えない、ゆえにuniqが使えないとなって破綻する。
UNIXのコマンドって微妙に使えないのが多くて、微妙に違うだけの同じ目的の
コマンドが多くて困る。
解決案として要件の変更が必ず提示されるのも困る。
それでUNIXは廃れたんじゃないかな?

140:デフォルトの名無しさん
13/12/28 12:49:05.40
KISSの精神を体現したのがMac。

141:デフォルトの名無しさん
13/12/28 12:55:41.87
>>139
要件に入ってない範囲なら整列するもしないも自由なのが常識。

142:デフォルトの名無しさん
13/12/28 12:58:58.73
有るものを押し付けるのがUNIX、お客様の要望するものを用意するのが
Windows。

143:デフォルトの名無しさん
13/12/28 13:39:07.55
/imsxadlup の /d /l /u の使い方教えて。英語読めないの。
URLリンク(perldoc.jp)

144:デフォルトの名無しさん
13/12/28 13:46:20.25
>>139
それは使いこなせてないんだろ。
Unixのコマンドは90%の解決を目指してる。その方が使いやすい。
自分の要件に合わせた、それにしか使えないコマンドが欲しいならプログラムすればいい。

145:デフォルトの名無しさん
13/12/28 14:11:57.43
UNIXのコマンドは微妙に使えないのが使いやすい。
使わなくて済むからだ。
~ジャーゴンニュースより抜粋~

146:デフォルトの名無しさん
13/12/28 14:19:31.38
>>143
/d
この修飾子は、パターンマッチングの際にプラットフォーム固有のロケール(ASCIIなど)を使用するように指示する。
ただし、Unicodeを使うべき理由がある場合はこの設定はそちらが優先される。
この修飾子が具体的にパターンマッチングにどのような変化をもたらすかを以下のサンプルで示した。

/l
この修飾子は、パターンマッチングの際に現在のロケール設定を使用するように指示する。
このロケール設定はコンパイル時のロケールと同じであるとは限らず、
setlocale()を用いて任意のロケール設定を用いることができる。

/u
この修飾子は、パターンマッチングの際にUnicodeのルールを使用するように指示する。

147:デフォルトの名無しさん
13/12/28 15:07:09.11
>>141
すでに抽出した行と同じ行は除外するというのが最も自然な
アルゴリズムなので、それを期待している可能性が高いから
整列は避けるというのが一番自然。

148:143
13/12/28 15:17:11.45
>>146
おお、ありがとうございます。マジで助かりました。
おかげ様でperl 5.14.1の正規表現ルールを全部覚えられました、感謝~。

149:デフォルトの名無しさん
13/12/28 15:18:54.48
>>148
どういたしまして。

150:デフォルトの名無しさん
13/12/28 15:40:23.44
>>147 普通プログラムの問題だとsort()だけで重複が取れたりするから、 sortするのが当たり前だと思う。 ただ実務では300行に1行重複した行が紛れ込んでそれを削るという ケースがほとんどだから、絶対にsortを掛けたりしないもんだけど。

151:デフォルトの名無しさん
13/12/28 18:44:49.26
Regular Expressionと関係ねえからよそでやれ

152:デフォルトの名無しさん
13/12/29 01:12:47.99
そもそも要件に「VBScriptで」って入ってる段階でINIXコマンドは使えないって思うもんじゃね?

153:デフォルトの名無しさん
13/12/29 04:51:41.49
>>152
そこはまぁCygwinとかMinGW+MSYSとかgnuwin32とかの各コマンド入れればいいって話になるんじゃね。
まぁどのみち正規表現じゃないからVBScriptの相談できる場所で聞けよて終わりなんだけど。

154:デフォルトの名無しさん
13/12/29 09:03:40.37
>>152
「VBScriptで作ったデータの処理」であって「VBScript で処理しろ」とは書いてないけどな。
まあ、一回きりなら Excel でもいいかもしれないし、VBScript で完結させたいなら Dictionary 使うのが楽。

155:デフォルトの名無しさん
13/12/29 09:15:59.40
ひとこと、
「正規表現ではできません」でいいのでは。

156:デフォルトの名無しさん
13/12/29 13:27:09.27
perlならいろんなアクセスの仕方があって遊べる問題なんだけどなぁ。
VBSでやるとしたら正規表現の出番は ^.*$ くらいしか無いんじゃ・・これすら必要無いか・・

157:デフォルトの名無しさん
13/12/29 13:34:16.38
無理矢理正規表現でやるなら

1、最終行が1行目になるように順番を逆さまにする
2、s/^(.*)$(?=[\s\S]*^\1$)[\r\n]*//g;
3、1をする

これで順番通りの結果になる。

158:デフォルトの名無しさん
14/01/03 02:42:43.46
Twitterの自分のツイートをデータベースに入れていきたいんだが
公式から正規表現で解析できる?

159:デフォルトの名無しさん
14/01/03 03:57:47.91
API叩けば?

160:デフォルトの名無しさん
14/01/03 19:20:28.19
英文の中から特定の単語を含むセンテンスを抽出する方法を教えてください

環境はPerlです

161:デフォルトの名無しさん
14/01/03 20:03:17.54
>>160
センテンスごとに特定の単語を表す正規表現がマッチするか調べる。

162:デフォルトの名無しさん
14/01/03 22:39:20.14
>>160
センテンスの前と後の改行を条件にする

163:デフォルトの名無しさん
14/01/04 12:47:08.01
>>160
センテンスの開始と終了を正規表現で表し、「特定の単語」をその間に挟む

164:デフォルトの名無しさん
14/01/04 13:10:19.31
>>160

$text = '英文';
$keyword = '特定の単語';
$regex = qr/(?:\G|[.?!;])\s*((?=[^.?!;]*\b$keyword\b)[^.?!;]+(?:[.?!;]|\z))/;

while ($text =~ /$regex/g) {
print "$1\n";
}

() や "" などの中に文章が再帰的に書かれているようなものは考慮していない.

165:デフォルトの名無しさん
14/01/05 13:52:40.26
3.14

166:デフォルトの名無しさん
14/01/07 08:56:16.73
修正確認しました!ありがとうございました!

Perl正規表現雑技
URLリンク(www.din.or.jp)

167:デフォルトの名無しさん
14/01/07 19:47:23.30
>>166
こういう計算方法って初めて見た。なんて名前の学問?なんだろう。

168:デフォルトの名無しさん
14/01/07 21:12:17.73
こういうのか~、大学で学べるんだねぇ。
URLリンク(www.ccn.yamanashi.ac.jp)

169:デフォルトの名無しさん
14/01/07 22:41:51.17
PowerShellスクリプトで仮想ドライブイメージのファイルパスを入力した後に、
パス文字列として正しいかどうかのチェックをしたくて次のようなコードを使ってみました。

Write-Host "マウントする仮想ディスクイメージのパスを入力"
Write-Host "例: X:\VHD Images\example01.vhdx"
$ImagePath = Read-Host "場所"
$ImagePath = $ImagePath -Replace "`"",""
Write-Host "入力したパス: "$ImagePath
If($ImagePath -inotmatch "[a-z]`:`\[^/:*?`"<>|]+`.vhdx?") {
【TAB】 Write-Host "正しい形式のパスではありません。"
} Else {
【TAB】 Write-Host "OK"
}

しかし、いくら正しいパスを入力しても「正しい形式のパスではありません。」が返されてしまいます。
コード中の正規表現部分はご覧のとおり [a-z]`:`\[^/:*?`"<>|]+`.vhdx? で、
一応ウェブ上の「PHP正規表現チェッカー」とJane用の「ReplaceStr Tool」では問題ありませんでした。
エスケープ文字が\ではなく`という点にも気を付けてチェックしました。
ここまでやってみましたが、問題点の洗い出しができすに困っています。
「OK」を返されるにはどうしたらいいのでしょうか?
尚、Test-Pathコマンドレットの利用はここでは扱わないものしてお願いします。

170:デフォルトの名無しさん
14/01/08 03:15:48.51
"[a-z]:\\[^/:*?`"<>|]+\.vhdx?"

171:デフォルトの名無しさん
14/01/08 04:27:05.50
>>170
あれ?エスケープ文字は`だってあっちこっちに書いてあるからその通りにしてたけど、それで動くんですね。
どうもありがとうございます。

172:デフォルトの名無しさん
14/01/08 16:38:03.89
最後に $ 付けないと誤爆しそう。

"例: X:\VHD Images\example01.vhdx.damy"

あと 「ReplaceStr Tool」 は対象テキストの改行が無視される仕様なので
改行を含むテキストにマッチさせたいときはご注意を。

173:デフォルトの名無しさん
14/01/09 06:00:28.69
>>172
ありがとうございます。
自分用に使う分には誤爆の心配は一応無いのでいいのですが、きっちりやる時はそうですね。
おっしゃるとおり、ReplaceStr Toolは1行だけのテストにしか使えませんね。
まだ試してはないけど、ベクターにも何やらありますね。

174:デフォルトの名無しさん
14/01/11 20:59:48.36
C言語のプログラムのソースから宣言されてる全変数を抜き出す正規表現を教えてください

175:デフォルトの名無しさん
14/01/11 23:17:13.53
正規表現じゃ無理

176:デフォルトの名無しさん
14/01/12 00:02:13.49
>>174
変数宣言に関する言語の文法とあなたのコーディングルールを全て列挙できたら考えないこともない。
あとプリプロセッサとコメントは禁止で。
どぞっ。

177:デフォルトの名無しさん
14/01/12 04:23:26.19
int foo, *bar, baz[8];
char *tai_pei64, honkon32[32];

とりあえずこれだけで考えると
int、charで始まる行で、a~z、A~Z、0~9、_、*を含む部分か?
関数を除外するには"("を含んだ行なら無視するか。

178:デフォルトの名無しさん
14/01/12 20:29:15.96
目的が分からんけど ctagsとか使ったほうが現実的なんじゃないの

179:デフォルトの名無しさん
14/01/13 00:11:59.89
URLリンク(ideone.com)
俺にはムリだな

180:デフォルトの名無しさん
14/01/16 13:18:43.71
age

181:デフォルトの名無しさん
14/01/16 19:04:22.39
htmlファイルから、画像リンクの画像のディレクトリだけ取得する方法を教えてください

182:デフォルトの名無しさん
14/01/16 20:22:08.30
ターゲットのhtmlのソースを読む

183:デフォルトの名無しさん
14/01/16 22:02:42.42
>>181

>>2

184:デフォルトの名無しさん
14/01/16 22:12:38.67
>>181
basedir使えよ。環境知らんが。

185:デフォルトの名無しさん
14/01/16 23:37:49.09
 定期的にHTMLのパースに関して質問してくる奴が居るが同一人物か?

186:デフォルトの名無しさん
14/01/17 05:59:24.78
・文字列を含まない正規表現 (先読みはNG)
・再起を使った正規表現 (??{code})はNG

これ作って面白い正規表現のベスト1、2なんだけど使える人が少なすぎる。
もっと普及させようよ。というかまず使えるようになってくれよ。

187:デフォルトの名無しさん
14/01/17 09:27:36.46
上は機械的にやるだけだし、作成するのあるのでそれ使えばいいが、なんか本末転倒な気持ちがする。
再*帰* は、すべての正規表現環境で使えないし。

188:デフォルトの名無しさん
14/01/17 14:12:23.47
まぁ面白いと思う人がいれば..だね。ある種のゲームだと思うんだが。

189:デフォルトの名無しさん
14/01/17 23:28:17.63
●Regular Expressionの使用環境
ruby

●検索か置換か?
置換

●説明
行中の改行を削除したい
以下でやると改行だけでなく改行の前の一文字も何故か消えてうまくいきません
対象データの場合は「元」が消えてしまいます

ruby -e 'puts open("input.txt").read.gsub(/[^。¥n]¥n/,"")' > output.txt

●対象データ
こんにちはお元
気ですか。
私は元気です。

●希望する結果
こんにちはお元気ですか。
私は元気です。

190:デフォルトの名無しさん
14/01/18 03:14:41.62
何故か消えてじゃねえよ池沼かよ
[^。\n]の意味考えてから投稿しろカス

191:デフォルトの名無しさん
14/01/18 08:28:14.05
>>189
「行中の改行を削除したい」は矛盾した表現。
「文字列中の改行を削除したい」か「行末の改行を削除してひとつの文字列にしたい」
だと思う。

192:デフォルトの名無しさん
14/01/18 09:04:51.25
「句点の直後にない改行を削除」だろうな
(?<!。)\n

193:189
14/01/18 10:19:24.32
[^。¥n]は句点のある改行以外の文字と一致することをようやく理解できました
勘違いしていました
192様のやり方でできました
みなさまありがとうございました

194:デフォルトの名無しさん
14/01/18 10:42:29.07
理解できてねえな
これはガチ池沼に見える

195:デフォルトの名無しさん
14/01/18 11:17:22.59
どう考えても、素人に対して、回答もせず難癖つけてるアホの方がそう呼ばれると思うがな。

196:デフォルトの名無しさん
14/01/18 11:25:24.11
池沼がそう思って自己満足していればいいんじゃね
誰も困らないしね

197:デフォルトの名無しさん
14/01/18 11:38:53.05
難癖に見える次元じゃセンス0なのは明らかだから至急他のお仕事探した方がいいと思うよ

次からは↓でどうぞ
正規表現道場 Part2
スレリンク(php板)

198:デフォルトの名無しさん
14/01/18 13:10:02.66
くやしいのう

199:デフォルトの名無しさん
14/01/18 14:10:17.09
煽れば教えて貰えると思うようじゃ死ぬまで無理だぞ(笑)

200:デフォルトの名無しさん
14/01/18 15:52:02.57
またオライリーの本が理解出来るほど頭良くない人が暴れてるのか。

201:デフォルトの名無しさん
14/01/18 16:56:55.68
>>195
難癖っつかツンデレだろ
190「[^。\n]がどういう意味を調べれがそうなった理由がわかるよ」
194「[^。\n]の意味を誤解している。もう一回ちゃんと理解してみよう」

実際[]の意味を適当な解説から丸写しするくらいしか説明する事ない。

202:デフォルトの名無しさん
14/01/18 18:10:45.52
俺はもうオートマトンの勉強始めたというのにおまえらは・・
低レベルのダンジョンをいつまでもウロウロしてもしょうがなかろう。

203:デフォルトの名無しさん
14/01/18 18:18:08.51
俺の次のステージはこっち。じゃあなおまえら。

生真面目で賢いオートマトンたんに萌える
スレリンク(shar板)

204:デフォルトの名無しさん
14/01/18 18:30:16.63
オートマトン厨か

205:デフォルトの名無しさん
14/01/18 22:24:36.17
オートマトンを学ぶと↓この問題の答えを表す正規表現が作れるようになるぞ。
URLリンク(news.livedoor.com)

206:デフォルトの名無しさん
14/01/18 22:35:15.56
見なくていいように、>>205のタイトルはこれ
【クイズ】狼とヤギと野菜を川の向こうに無事に運ぶ方法を求めよ

207:デフォルトの名無しさん
14/01/19 02:21:57.46
今まで知らなかったってとこでお察し

208:デフォルトの名無しさん
14/01/19 04:51:14.32
俺が興味あるのは正規表現だけでそれ以外の技術にはまったく興味無いから。
perlの正規表現は誰も使わないようなメタ文字類まで使いこなせるがperlそのものはまるで知らない。

209:デフォルトの名無しさん
14/01/19 05:02:05.90
>>208
なら机上でやってろよ。

210:デフォルトの名無しさん
14/01/19 05:09:31.17
>>209
じゃあおまえが上で俺が下な。

211:デフォルトの名無しさん
14/01/19 07:33:31.67
アッー

212:デフォルトの名無しさん
14/01/19 11:10:20.35
俺はもうポケモン卒業したというのにおまえらは・・

213:デフォルトの名無しさん
14/01/19 13:47:41.62
>>208
厨学生はお気楽でいいな
まあその餌では誰も釣れんが

214:デフォルトの名無しさん
14/01/20 00:35:22.22
・文字列を含まない正規表現
・Ardenの規則

ネットには正しい解説が見当たらなかった2つ。どうやらこの辺がネット独学(笑)の限界らしい。
大学レベルの内容すら出てこないとはな、ネットのレベル低すぎる・・。

215:デフォルトの名無しさん
14/01/20 00:36:44.71
まあ、ネット使ってる大学生はないから仕方ないよw

216:デフォルトの名無しさん
14/01/20 00:51:42.18
んだね、さて、寝る。

217:デフォルトの名無しさん
14/01/20 11:45:30.88
海外のpdfが読めてないのがわかるなw
ネットのレベルが低いだと?
井の中のカワズちゃんは、島国の中心で哀でも叫んでろ

218:デフォルトの名無しさん
14/01/20 12:02:22.87
最初に拾った棒切れで一晩子犬を叩いていたら
大人にうるさいと言われたでござるの巻

219:デフォルトの名無しさん
14/01/20 18:22:31.69
>>217
英文で何か書いてるサイトがあることは随分前から知ってるよ。
ただ英文なんて読んでらんねーからノーカウント。そんなん読むくらいなら普通に本買うわ。

220:デフォルトの名無しさん
14/01/20 18:27:36.05
インターネットのレベルの話からずれましたね

221:デフォルトの名無しさん
14/01/20 18:32:10.45
英文に関しては俺のレベルが低すぎるのを認めざるを得ない。あと数学も。
正規表現でぐぐると行列が出てくるサイトがあるんだがさっぱりだ。

222:デフォルトの名無しさん
14/01/20 18:33:45.98
さて、気付いてもらえるか・・
スレリンク(army板)

223:デフォルトの名無しさん
14/01/20 19:05:48.98
鳥肌レベルで気持ち悪いわ

224:デフォルトの名無しさん
14/01/20 21:39:08.94
偏差値40無かったしな、許せ。

225:デフォルトの名無しさん
14/01/21 03:07:08.52
正規表現メモの中の人の日記
URLリンク(www.kt.rim.or.jp)

日記更新した。どうやら気付いてもらえなかったようだ。

226:デフォルトの名無しさん
14/01/21 04:03:29.00
うお、雑技の中の人ありがとう!地味に嬉しい。

227:デフォルトの名無しさん
14/01/21 04:19:40.24
Perl正規表現雑技 - ある文字列を含まないものにマッチする正規表現
URLリンク(www.din.or.jp)

> (?:fooba|foob|foo|fo|f)

これは f でまとめて書くかどうか悩んだだろうなぁw
まとめないほうが分かりやすいのでこの書き方に賛成ですw

228:デフォルトの名無しさん
14/01/21 04:22:06.48
↑これの元ネタ↓

正規表現道場 Part2
スレリンク(php板)

229:デフォルトの名無しさん
14/01/21 05:02:16.61
XXXXXfoo → XXXXX.
XXXXXfoo → XXXXXfo.

うーん。。 この説明はちょっとというか、かなり分かりにくい。最後のピリオドがメタ文字に見えたし・・。
読む人の中でこの説明を理解出来る人はほとんどいないと思う。

230:デフォルトの名無しさん
14/01/21 15:33:02.18
否定は、正規表現でやりたくない内容ランキングのトップクラスだよな。

231:デフォルトの名無しさん
14/01/21 19:06:33.85
"xyz" みたいに文字が被らない否定ならまだいいけど、"xyx" みたいに文字が被る場合の否定は
即答出来る人はほぼいないんじゃないかな。頭の体操としては面白いんだけどね。

232:デフォルトの名無しさん
14/01/21 22:25:26.02
雑技の中の人、わがまま聞いてくれてありがとう~m(_ _)m

233:デフォルトの名無しさん
14/01/22 03:26:52.31
>>231の答え ^(?:[^x]|x+y*[^xy])*(?:x+y*)?$

234:デフォルトの名無しさん
14/01/22 22:42:26.46
HTMLからタグや不要な部分を取り除いたら、
空白だけの行とか、虫食い状態になってしまったんですが、
どのようにすればいいでしょうか?

自分は、pythonですが、pattern = r"^\s*\t*(\r)?\n$"
としてまずは空白行を取り除こうとしました
しかし、失敗しました

アドバイスいただけたらと思います

235:デフォルトの名無しさん
14/01/22 22:47:01.47
>>234
\n にマッチさせるなら $ を使う必要はないのでは。

$ は \n の直前にマッチする。
つまり $\n が本来の書き方。

236:デフォルトの名無しさん
14/01/22 22:50:17.11
俺なら[\s\n]+\nを\nに置き換える

237:デフォルトの名無しさん
14/01/22 22:54:54.34
>>234
\s*\t* は \s* と同じ意味。\s はタブにもマッチする。

>>236
それだとファイル先頭の行が空行だったら消せないね。

238:デフォルトの名無しさん
14/01/22 23:37:30.99
皆さん、アドバイスありがとうございました
アドバイスを参考に、^[\s*(\r)?\n]+(\r)?\nとかを\nに変えてみました
しかし、やはりダメでした
検索しても、いい情報が出てきませんでした
思っていたより難しいですね...

239:デフォルトの名無しさん
14/01/23 00:56:46.11
将棋のルール覚えるみたいに初めはちょっと大変だよ。
まずは a を b に置換出来るかどうかから始めたほうがいい。

240:デフォルトの名無しさん
14/01/23 09:57:52.30
スレリンク(tech板:204番)

241:デフォルトの名無しさん
14/01/23 13:22:58.47
あれ?wwwwww偽スレ削除されてたなw
ざまぁwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
誘導に対して荒らしだのNGだのほざいてたゴミ乙wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ああいう奴らが社会の底辺で足引っ張ってるんだろwwwwwwwwwwwwwww
どうせプライドのかけらもない恥知らずだからこのスレになに食わぬ顔で書いてるんだろうなwwwwww
本当に思考回路歪んでるし生きてる価値がないんだから氏ねばいいのにwwwwwwwwwwwwwwwwww
偽スレの正統性を主張してたみたいに現実社会でも意味不明な狂った主張をしてるんだろwwwwwwwwwしかも自覚なしwwwwwwwwwwwwwww
迷惑だから早く芯でねwwwwwwwwwwwwwwwwwwwwwwww

242:デフォルトの名無しさん
14/01/23 14:11:58.39
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwww

243:デフォルトの名無しさん
14/01/23 14:57:09.39
ぶっちゃけ、あんなハッタリに引っ掛かって大人しくなるほどアホだとは思わなかった。
どんだけピュアハートなんだよ。

244:デフォルトの名無しさん
14/01/23 17:56:37.00
草生やす程楽しいか?
削除されることは最初から分かってただろうに。
削除されるべくして削除されただけ。

245:デフォルトの名無しさん
14/01/23 20:49:54.40
ゴミ

246:デフォルトの名無しさん
14/01/23 23:24:17.63
まぁここはキチガイ隔離スレだから我々はあちらで粛々とスキル向上に励みましょう。
このスレは糞質問の雨嵐を受ける傘スレ。

247:デフォルトの名無しさん
14/01/24 00:17:56.24
>>246
我々ってキチガイのお前一人だけだよ。

248:デフォルトの名無しさん
14/01/24 01:01:07.27
ワロタw 知らないままでいなさいな。

249:デフォルトの名無しさん
14/01/24 01:12:33.81
>>247
分かってないな
わざわざこっちに来てまで荒らすってことは
あっちを荒らしてくれってことだよ

250:デフォルトの名無しさん
14/01/26 03:11:54.27
初心者に分かりやすいのは単純な分岐。

(a\*|b\*|c\*|a|b|c)

*付きのものを前に書かないといけません。(順番大事)

251:デフォルトの名無しさん
14/01/26 13:48:39.54
>>250
むこうのスレの90です。
勉強になります。ありがとうございます。

おそらく私の質問に関するレスだと判断しましたので
レスをさせていただきました。

252:デフォルトの名無しさん
14/01/26 14:43:40.93
いえいえ、次からはこちらで質問したほうが回答もらいやすいです。では。

253:デフォルトの名無しさん
14/01/26 20:18:56.54
DirectCast(12UI, UInt32Value)
から
12UI
を取り出す正規表現を教えてけろ。\( \)を使おうとしたのだが、
文字列の中にもともと入っている()があるのでうまく行かん。

254:デフォルトの名無しさん
14/01/26 21:20:59.04
>>253
どういう正規表現だとどういうのがうまく行かないのか書け

255:デフォルトの名無しさん
14/01/26 21:26:52.82
>>253
エスケープしろ、またはするな。
どちらかは環境による。

256:デフォルトの名無しさん
14/01/27 14:36:23.65
DirectCast\((12UI), UInt32Value\)

257:デフォルトの名無しさん
14/01/27 15:02:22.99
みなさんありがとうございます。
>>256
教えていただいた方法で出来たのですが、
例に挙げた12UIだけではなく、以下のように数字が一般の整数の場合、
DirectCast\(([0-9].UI), UInt32Value\)
のようにしてみたのですが、マッチしません。

DirectCast(14805UI, UInt32Value), _
DirectCast(8010UI, UInt32Value) _
DirectCast(1UI, UInt32Value), _
DirectCast(152511UI, UInt32Value)

どうしたらよいでしょうか?
環境はサクラエディタの置換コマンドです。

258:デフォルトの名無しさん
14/01/27 15:27:17.46
>>257
.の意味を調べればよい。

259:デフォルトの名無しさん
14/01/27 15:34:39.28
>>258
できました。数年ぶりに正規表現使ったので間違えていました。
ありがとうございました。

260:デフォルトの名無しさん
14/01/27 16:44:44.21
ヒントを与えると後は自力で頑張る良い質問者

261:デフォルトの名無しさん
14/01/27 20:51:42.26
正規表現のテクニックをマスターできるチュートリアルって無い?
手を動かすだけでできるようなやつ

262:デフォルトの名無しさん
14/01/28 03:17:05.07
手を動かすだけ 正規表現 でググると出てくるサイトがあるが、数回動かして終わりで意味なし。

263:デフォルトの名無しさん
14/01/28 05:01:27.39
●Regular Expressionの使用環境
Javascript

●検索か置換か?
置換

●説明
'1'を含まないABCからDEFまでを削除したいです

●対象データ
ABC
1
DEF

ABC
2
DEF

ABC
3
DEF

●希望する結果
ABC
1
DEF

264:デフォルトの名無しさん
14/01/28 05:05:40.49
s/Javascript/Dart/g

265:デフォルトの名無しさん
14/01/28 10:10:43.60
>>263
「'1'を含まないABCからDEF」というと対象データでは2パターン考えられる.
 A) 2の前後,と,3の前後
 B) 2の前のABCから3の後のDEFまで

おそらくAだとして,
str = str.replace(/ABC[^1]*?DEF/g, '');

266:デフォルトの名無しさん
14/01/28 12:01:12.29
「123」 を含まない場合 → ABC(?:(?!123|DEF).)*DEF

否定の中にもDEFを書くのがミソ。

267:デフォルトの名無しさん
14/01/28 12:39:43.06
>>266
最短一致を使えば否定の中にDEFを書く必要はなくなる.
ABC(?:(?!123).)*?DEF

268:デフォルトの名無しさん
14/01/28 16:46:19.88
この2つの違いが分からんかな、まぁめんどくさいからいいや。

269:デフォルトの名無しさん
14/01/28 17:25:51.83
右も左も分からん人は>>266推奨。予期せぬトラブルを未然に防げる。

270:デフォルトの名無しさん
14/01/28 22:03:43.46
予期せぬトラブルを説明してください

271:デフォルトの名無しさん
14/01/29 03:20:24.59
266はDEFを通り越す可能性が無いけど267は通り越す可能性を残す、と言えば分かるかな。
正規表現単体で使う分にはまったく問題ないが正規表現の一部として正規表現の中に
放り込むと問題が生じる可能性が出てくる。ある程度正規表現に慣れた人なら無意識に回避
出来るだろうが初心者の場合それが出来ないからね。

272:デフォルトの名無しさん
14/01/29 03:24:16.13
ちなみに266だと後ろを見ないマッチにしても問題ない。
分岐があると遅くなるがこれを最小限にする方法もある(詳説 正規表現参照)

上級者にもおすすめしたい書き方なのだ。

273:デフォルトの名無しさん
14/01/29 03:58:32.19
さて、向こうに帰ろう。

274:デフォルトの名無しさん
14/02/01 16:47:50.64
●Regular Expressionの使用環境
PHP

●検索か置換か?
検索

● 文字コードを取得したい。
例)
text/html;charset=ISO-8859-1 > ISO-8859-1
text/html;charset=utf-8 > utf-8

preg_match('/text\/html;charset=(.+?)/i' , $str);

これだと先頭の1文字しか取れません。
自分なりに頑張ってここまでしたのでアドバイスください。

275:デフォルトの名無しさん
14/02/01 16:52:12.73
$

276:デフォルトの名無しさん
14/02/01 16:58:34.76
あ、なるほど行末をしめす$なわけか。
即答どうもです、助かりました。

277:デフォルトの名無しさん
14/02/01 17:43:47.02
最短マッチをやめろ

278:デフォルトの名無しさん
14/02/01 20:50:26.76
([^>]+)

279:デフォルトの名無しさん
14/02/02 19:25:37.08
カンマ付きの数値と、カンマ無しの数値の両方に対応する正規表現がほすぃ

280:デフォルトの名無しさん
14/02/02 19:31:36.16
いらね

281:デフォルトの名無しさん
14/02/02 19:35:26.39
やっぱいいや

282:デフォルトの名無しさん
14/02/10 17:23:05.15
>>42
すんごい亀だけど、-が真ん中にあるからエラーになったんじゃないの?

283:デフォルトの名無しさん
14/02/10 18:52:12.86
いくらなんでも亀すぎだろw

284:デフォルトの名無しさん
14/02/10 23:38:57.90
●Regular Expressionの使用環境
Notepad++.exe 6.53(Scintillaライブラリ,正規表現は複数行に対応してます)

●検索か置換か?
置換

●説明
Movable Type形式にエクスポートしたブログのコメントだけを削除したいです。
"COMMENT:"で始めって"-----"で終わるのを""で置換したい

●対象データ
AUTHOR: foo
-----
BODY:

-----
COMMENT:
AUTHOR: bar

-----
--------
AUTHOR: foo
-----
BODY:

-----
--------

285:デフォルトの名無しさん
14/02/10 23:39:29.02
●希望する結果
AUTHOR: foo
-----
BODY:

-----
--------
AUTHOR: foo
-----
BODY:

-----
--------

単純にCOMMENT:.*-----で検索すると最初の"COMMENT:"から"ファイル末尾の"--------"の最後の"-----"部分までが選択されてしまいます。
"COMMENT:"から最初に現れる"-----"までがヒットするようにしたいです。

286:デフォルトの名無しさん
14/02/10 23:45:59.68
>>283
すっごい久しぶりにスレひらいたから、ごめんね><

287:デフォルトの名無しさん
14/02/10 23:47:17.98
>>285
対応してるかどうかしらないけど、 .* → .*? にするといいよ

288:デフォルトの名無しさん
14/02/11 00:00:34.65
>>287
ありがとー
できた

289:デフォルトの名無しさん
14/02/15 00:47:50.42
文字コードはutf-8やShift-JISのように英数字があり、一個だけ"-"が含まれていますが、
コレを正規表現で文字コードかどうかのvalidateを行うにはどのようにしたらいいですか?
[a-zA-Z0-9-]+では、-----とかも通ってしまいます

290:デフォルトの名無しさん
14/02/15 02:03:36.42
何言ってるかよく分からないけどこれでいい?

[a-zA-Z0-9]*-[a-zA-Z0-9]*

※真ん中のハイフンのエスケープは環境に合わせて

291:デフォルトの名無しさん
14/02/15 02:05:31.57
文字で出来たコードと文字を表現するコードは意味が全く違うぞ[a-zA-Z0-9]+-[a-zA-Z0-9]+

292:デフォルトの名無しさん
14/02/15 08:18:47.09
エスパーが結婚しとるw

293:デフォルトの名無しさん
14/02/15 08:35:56.02
チルドレンは俺の嫁

294:デフォルトの名無しさん
14/02/15 10:22:10.36
もじーず (きごー もじーず)*
_の扱いに悩むな

295:デフォルトの名無しさん
14/02/15 11:50:20.25
>>289
文字コードの名前は「英数字があり、一個だけ"-"が含まれています」ってのがそもそも間違い.
URLリンク(www.iana.org)
また,正式には「Shift_JIS」だが,モジュールによっては「SJIS」とか「Shift-JIS」とかも受け付けたりするので,それらも認めるかどうかは前提次第.

正確にvalidateしたいんなら文字コードの名前をひたすら列挙していくしかない.
列挙せずに規則性(条件)を探して正規表現にするのは面白いかもしれない.
例えば,
・「-」や「_」では終わらない
・「:」の後ろには数字が2桁か4桁続いて終わる
とか.

296:デフォルトの名無しさん
14/02/15 13:27:17.08
面白くねー

297:デフォルトの名無しさん
14/02/15 15:34:21.63
単純に
[a-zA-Z0-9]+(-|_|:)?[a-zA-Z0-9]+して、
例えばlen(str) <= 30
くらいにしとけばセキュリティ的にも大丈夫なんじゃないの?
あ、正規表現の部分が全然ダメか

298:デフォルトの名無しさん
14/02/19 19:13:00.30
input="aa(?<id>でーた)aaa" →idグループを置換→ "aa置換aaa"
名前付きグループを置換する正規表現はどう書けばおk?
グループ内にカッコが存在するパターンも考えると俺の頭じゃ思いつかなかった。

299:デフォルトの名無しさん
14/02/19 20:31:04.07
な、なんだって?
ごめん、ちょっとよく聞こえなかった。
環境も聞き取れなかった。

300:デフォルトの名無しさん
14/02/19 21:16:56.09
$ echo 'input="aa(?<id>でーた)aaa"'|sed 's/(?<id>でーた)/痴漢/'
input="aa痴漢aaa"

301:298
14/02/19 21:50:47.96
対象:aa(?<id>でー()た )aa
パターン:\(\?<id>.*?\)
結果:aa置換た )aa

対象:(aa(?<id>でーた )aa)
パターン:\(\?<id>.*\)
結果:(aa置換

最短、最長使ってみたがダメだった。
不確定の正規表現のパターンを正規表現で置換は無理ゲーなのか。

302:デフォルトの名無しさん
14/02/19 21:51:04.83
正規表現の一部を正規表現でマッチさせて置換したいってことなんかな。
素の正規表現だと有限回数の入れ子しか書けないからムリだろう。

鬼車なら、
^(?<文字集合>\[\^?(?:[^\\\[\]]|\\.)*\])
^(?<基本表現>(?:[^\\()\[\]]|\g<文字集合>|\\.)*)
これを
^(?<基本表現>(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)
こうして
^(?<正規表現>\(\g<正規表現>*\)|\g<基本表現>)*
これを
^(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*
こうして
\(\?<id>(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*\)
こうするとか。
基本表現のところがだいぶ適当だから場合によっては怪しい動きをするかも。

部分式呼び出しの使い方間違えててちょっと焦った。

303:デフォルトの名無しさん
14/02/20 01:26:17.90
「正規表現 再帰」 でぐぐれ。と言えば済む話。

304:デフォルトの名無しさん
14/02/21 06:53:06.58
フォームにurlを入力させる場合に不正かどうかを調べたいんですけど、
以下の正規表現で大丈夫でしょうか?
urlは星の数だけあるので全てに適用できるか分かりません

pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-zA-Z0-9+&amp;@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&amp;@#\/%=_|]/i";

何かアドバイスあれば教えて欲しいのですが

305:デフォルトの名無しさん
14/02/21 11:05:16.67
>>304
>>1-4を100回音読してから出なおせ

306:デフォルトの名無しさん
14/02/21 13:43:02.94
RFCだか何だか見れば済む話のような

307:デフォルトの名無しさん
14/02/21 15:29:38.12
厳密なメールアドレスチェックとか正直やりたくないのう

308:デフォルトの名無しさん
14/02/21 15:44:18.60
>>298
厳密でないドコモとかのメールアドレス通らなくて文句言われるしな。

309:デフォルトの名無しさん
14/02/21 16:07:54.34
Internationalized Domain Nameでググれば絶望的な気分になれるぞ。

310:デフォルトの名無しさん
14/02/21 17:18:22.06
>>304
星の数ほどあっても1億か10億くらいのURLを一つ一つ試してみて、そのうちの99%以上パスすればOKとかにすればいいんじゃね?
99%未満ならパスしなかったURLを元に調整する感じで。
99%とかって具体的な値は自分で決めなきゃいけないけどな。

311:デフォルトの名無しさん
14/02/21 22:06:55.70
>>310でFAだろ
10億もいらんな、1億で十分

312:デフォルトの名無しさん
14/02/21 22:15:48.49
まずスキームで3つしか挙げていないという。http,https,ftp

313:デフォルトの名無しさん
14/02/21 22:25:56.27
言いたいことは分かるけど
ネットやっててその3つしか見たことがない

314:デフォルトの名無しさん
14/02/21 22:35:51.22
>>304

http://お名前.com/

が不正と判断されてしまう。

315:デフォルトの名無しさん
14/02/21 22:37:23.24
お名前.comもそういえば見たことないな
使ってる人いんの?

316:デフォルトの名無しさん
14/02/21 22:41:08.51
URLリンク(ja.wikipedia.org)ウィキペディア

これもURLだな。

317:デフォルトの名無しさん
14/02/21 22:46:37.53
>>313
mailto:
file:
tel:
gopher:
javascript:

318:デフォルトの名無しさん
14/02/21 22:48:43.96
gopherって何?
ゴップハー?

319:デフォルトの名無しさん
14/02/21 22:53:18.37
gopherか、20年前ぐらいに使ったことあるかも。

320:デフォルトの名無しさん
14/02/21 23:08:56.91
>>313
たぶん言いたいことを理解できていないと思うから、
RFC1738を100回音読してからまた来るといいよ

321:デフォルトの名無しさん
14/02/21 23:10:41.50
>>318
ゴーファー。
ブラウザのプロキシの設定で見かけることがある。

322:デフォルトの名無しさん
14/02/21 23:12:02.04
音読したけど、英語だったので意味がわからなかったとか

323:デフォルトの名無しさん
14/02/22 00:42:49.93
ゴーフルならおととい食ったが

324:デフォルトの名無しさん
14/02/23 18:20:44.10
1時間以上試しているけど、わからないので助けてくれ!

● PHP
● 検索(抽出)
● 「abc--'--'-"-"--」 から→ 「--------」を取り出す

abc以降の -------- を取り出したい。
ただし '" は不要というパターン

'/.*abc(.+[^"|\']*)/'
/.*abc([^"|\']*)/

これでいけそうでいけないんだよねー

325:デフォルトの名無しさん
14/02/23 18:33:27.55
echo str_replace( "-","", "[abc--'--'-\"-\"--」");
単純にこうじゃいかんの?

326:デフォルトの名無しさん
14/02/23 18:36:15.46
ああごめん寝ぼけてた、忘れてくれw

327:デフォルトの名無しさん
14/02/23 19:17:59.08
正規表現じゃなくて単なる文字列操作でいいんじゃないのか?
先頭のabcを捨てて、残った文字列からクォート文字を消すという2手順でいいだろ

328:デフォルトの名無しさん
14/02/23 19:21:51.03
つーか正規表現じゃムリじゃね?
クォート文字の位置が固定ならばできるが、そういう要件じゃなさそうだし

329:デフォルトの名無しさん
14/02/23 22:18:09.84
s/[^-]//g

330:デフォルトの名無しさん
14/02/23 23:01:48.43
たぶんハイフンはプレースホルダーの意味で書いたのではないか
どうなんだ>>324

331:デフォルトの名無しさん
14/02/23 23:27:46.75
v[^-^]v

332:デフォルトの名無しさん
14/02/24 01:37:54.80
>>329は、取り出したいものを正規表現するのではなく、取り除きたいものを正規表現して置換するという意味で書いた。

333:デフォルトの名無しさん
14/02/25 02:38:54.15
>>324
それは「--」と「--」と「-」と「-」と「--」を抽出してから結合してる
正規表現でやるなら(結合を含むから)最低でも置換になる

「'"」の除去をしてから 「--------」を取り出すか
「--'--'-"-"--」を取り出してから「'"」の除去をすれば
抽出と置換の二段階になるけど多分楽に事が済む

334:デフォルトの名無しさん
14/02/25 17:37:02.74
>>333
もしかしてプログラム経験無い?テキストエディタの正規表現とは別世界だぞ。

335:デフォルトの名無しさん
14/02/25 17:47:27.85
>>334
どんだけショボいエディタ使ってんだよw

336:デフォルトの名無しさん
14/02/25 20:27:28.66
/(?<=abc)(.+)/で一度ふるいにかけて/['"]/でsplitなり/['"]/自体除去すりゃいいんじゃね
2段階に分けるほうが楽

337:デフォルトの名無しさん
14/02/25 23:33:19.95
この質問の回答に一度も\Gが出てこないのが寂しい。

338:デフォルトの名無しさん
14/02/26 00:33:57.11
>>334
飛び飛びの領域を単一のマッチ範囲や捕獲式集合として捕獲できる正規表現なんてあるの?
Perlのコードサブパターンとかで拡張すれば出来るかもしれないけど、
普通は複数のマッチ範囲や複数の捕獲式集合として得るしか無いと思うんだが

それと、まともなエディタならPerlとかの特殊極まりない拡張を除けば大体の機能が使えるだろ

>>334>>337
正規表現でプリーズ

339:324
14/02/26 22:44:02.26
返事が遅くなりましたが、色々アドバイスありがとうございました。

可能ならば正規表現で処理したかったのですが、
皆さんのアドバイス通り置換での2段階処理とします。

これの方が楽で確実みたいですしね。
ども、でした。

340:デフォルトの名無しさん
14/02/27 00:53:58.53
正規表現は機能でなくて表現。

341:デフォルトの名無しさん
14/02/27 06:30:21.40
機能だろ
黙ってろクズ

342:デフォルトの名無しさん
14/02/27 07:20:11.35
>>340
LispのS式でも勉強してみよう
(S式 Symbolic expression)


一応書いておくけど
表現=expression

343:デフォルトの名無しさん
14/02/27 08:20:03.61
>>342
elispで使ってるくらいであんま詳しくないけど、sexpは構造でそれが機能かどうかはcar次第では。
正規表現は検索や置換の対象となる文字集合を表すものですしょ。別に名前に表現が入ってるからとか気にしてなかった。

344:デフォルトの名無しさん
14/02/27 15:19:32.41
元々は論文などの学術的な用途で説明に使う純粋な表現だった
それを元に正規表現による検索ルーチンが作られて普及した
今ではその検索ルーチンを正規表現エンジンと呼ぶようになってしまい、
正規表現エンジンが受け入れる検索パターンを正規表現と呼ぶようになってしまった

なお、正規表現エンジンは元々の正規表現の意味では通常表現不可能なパターンすら検索する能力を持っている
もはや別物

345:デフォルトの名無しさん
14/02/27 18:29:51.90
そう言えば折れも英単語解析のための正規表現みたいなものを作って使っていたなあ
ま、その後いわゆる正規表現に折れも一本化したけどな

346:デフォルトの名無しさん
14/02/27 23:06:44.69
海外じゃもうregexと書くのが定着してる、というか定着させようとしてるね。

347:デフォルトの名無しさん
14/02/27 23:16:15.70
>>346
じゃあs式も略すならpは余計だよね。

348:デフォルトの名無しさん
14/02/28 00:48:01.57
S-exだね。

349:デフォルトの名無しさん
14/02/28 05:41:22.87
>>348
じゃあ大文字とハイフンが必要ならReg-exだねって(オイ

350:デフォルトの名無しさん
14/03/01 21:33:30.54
>>346
さりげなくregexpをdisらないで

351:デフォルトの名無しさん
14/03/05 12:56:57.66
●Regular Expressionの使用環境
サクラエディタ

●検索か置換か?
置換

●説明
Exampleの文字列を含まない行を削除したい

●対象データ
ABCA Test
BCAA Example
CABA Abc

●希望する結果
BCAA Example


ネットで検索して出てきた^(?!.*Example).+$や^((?!Example).)*$
で試したんですが空行が残ってしまいました

352:デフォルトの名無しさん
14/03/05 13:09:37.21
^(?!.*Example).+\r?\n?

353:デフォルトの名無しさん
14/03/05 13:15:01.87
>>352
できました
ありがとうございました!

354:デフォルトの名無しさん
14/03/05 20:10:58.23
$は改行の直前までしかマッチしないのがポイント

355:デフォルトの名無しさん
14/03/06 14:13:12.95
後から出てきてさも知ったかのような口を利くのは>>354の(チャーム)ポイント

356:デフォルトの名無しさん
14/03/07 04:25:15.64
誰も正規表現にツッコミ入れないけどみんなあえてスルーしてるんだろうな。

357:デフォルトの名無しさん
14/03/07 06:11:48.79
希望する結果が逆なのは分かったけど、
ツッコミが必要な正規表現が分からない…出来れば教えてくれ。

358:デフォルトの名無しさん
14/03/07 07:11:37.81
>Exampleの文字列を含まない行

空行もこれに該当するんじゃ?

359:デフォルトの名無しさん
14/03/07 10:43:45.86
サクラエディタとしては、該当するものを""で置換して消すしかないからこーなるわけよ。

360:デフォルトの名無しさん
14/03/07 10:53:01.11
後方参照の否定だっけ
否定の後方参照だっけ
後方参照をうまく使えると捗りそうだよね
いまいちパッと使えないorz

361:デフォルトの名無しさん
14/03/07 11:46:51.76
>>356
お前恥ずかしい奴だな

362:デフォルトの名無しさん
14/03/07 22:35:03.25
空行が消せないという仕様かスキルか知らないけどそれのほうが恥ずかしいのでは。

363:デフォルトの名無しさん
14/03/07 22:44:29.69
今試してみたら普通に空行消せた。ということは・・(察し

364:デフォルトの名無しさん
14/03/07 23:49:29.37
相当悔しかったんだな

365:デフォルトの名無しさん
14/03/07 23:51:20.94
>>362-363
クスクス

366:デフォルトの名無しさん
14/03/08 00:41:37.59
あれ?>>352で改行が消せるなら空行も消せるはずですね。

367:デフォルトの名無しさん
14/03/08 14:35:23.35
>>359
何言ってんだこの馬鹿は。

368:デフォルトの名無しさん
14/03/08 22:07:40.54
>>366
まだそんな間抜けな事を言っているの?
君だけだよ?

369:デフォルトの名無しさん
14/03/09 01:07:09.32
耳の聞こえないふりの人みたいに逆ギレですかそうですか。

370:デフォルトの名無しさん
14/03/09 17:54:46.52
掲示板なんだから耳が聴こえないかどうかは関係ないだろ
何言ってんだ

371:デフォルトの名無しさん
14/03/09 17:56:38.66
俺はチンポ立たない振りして女連れ込んでる
入れちゃうとだいたいオーケー

372:デフォルトの名無しさん
14/03/09 18:57:29.74
>>370
「みたいに」って書いてあるじゃん
この「耳の聞こえないふりの人」ってのは多分自称ベートーベンの痛い奴の事だよ
ゴーストライターに耳聞こえてることバラされて訴えるって意気込んでるらしいから

ゴーストライター以前にマスコミの取材中にも聞こえてる挙動してて今更なんだが
障害者手帳の不正入手の罪がバレるのはゴーストライターがバレるより怖いらしい

373:デフォルトの名無しさん
14/03/09 22:09:42.25
こちらにも貼っておきますね

現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
スレリンク(vote板)

374:デフォルトの名無しさん
14/03/10 00:48:00.39
ID表示されるようになったらスレタイ変えたメンヘラ男子が困りそう。

375:デフォルトの名無しさん
14/03/11 17:40:04.71
>>371
これまじ?

376:デフォルトの名無しさん
14/03/11 18:57:52.90
>>375
もちろんマジ

377:デフォルトの名無しさん
14/03/11 19:00:37.92
うわぁー、たった!どうして?

きみを、みてたら、心があつくなって
体があつくなって

,,,,,,よしこさん!
とだきつく

あとは、まずオッパイもみもみ
下にてをのばし

あとは自分で判断しろ

378:デフォルトの名無しさん
14/03/12 17:16:31.95 6zBbVI2I
●Regular Expressionの使用環境
秀丸

●検索か置換か?
置換

●説明
複数行の空行を1つの空行にしたい

●対象データ





●希望する結果

379:378
14/03/12 17:19:09.32 6zBbVI2I
検索
^\n+

置換
\n

これだと置換されない。

380:デフォルトの名無しさん
14/03/12 17:26:30.29 iuIDUWkr
>>379
その環境は知らないけど、^があるのに$がなくて\nって変じゃないか。
単に\n+じゃダメなの。

381:デフォルトの名無しさん
14/03/12 17:38:06.82 Qvoh4cG3
秀丸の改行へのマッチには制約があるよ。ググるか説明書読んで。

382:デフォルトの名無しさん
14/03/12 20:35:10.49 9jZOtDPU
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
2chMate 0.8.6/NEC/LaVieTab PC-TE510N1B/4.2.2/SR

●検索か置換か?
検索?(NGワード)

●説明
アットwikiを正規表現で当たるようにしたい
要するに
URLリンク(www1)<)がNGワード指定される

383:デフォルトの名無しさん
14/03/12 20:44:53.82 iuIDUWkr
>>382
URLリンク(www\d+\.atwiki\.jp)

384:デフォルトの名無しさん
14/03/12 21:14:52.82 9jZOtDPU
>>383
すいません。できませんでした。
htmlタグでもう一度作れますか?
できなければ諦めます

385:デフォルトの名無しさん
14/03/13 00:04:20.91 xoYJgDxQ
>>384
htmlタグって?
正規表現にチェック入れてないだろ。

386:デフォルトの名無しさん
14/03/13 06:58:56.57 1OBNO3pg
/.*/ じゃダメ。誤爆する。

387:386
14/03/13 07:15:45.44 1OBNO3pg
ttp\:\/\/www\d+\.atwiki\.jp\/[\!\#-\&\(-\.0-\;\=\?-\[\]-\~]+\/

これでいいのかな?2chMateとやらの正規表現エンジンの仕様が
分からないから怪しい文字全部にエスケープ付けといた。

あと調べたところ古いバージョンでは正規表現の先頭に / を付ける必要があるらしい。
動かない場合は試してみて。

388:デフォルトの名無しさん
14/03/13 07:29:23.49 2a19jPZt
>>385
チェック入れてますよ
>>387
ありがとうございます。できました。

389:デフォルトの名無しさん
14/03/13 08:26:35.42 xoYJgDxQ
>>388
2chMate 0.8.6/SHARP/SH-13C/2.3.4/DR では問題なかった

390:デフォルトの名無しさん
14/03/13 08:30:17.94 2a19jPZt
>>389
387なら出来ましたよ

391:デフォルトの名無しさん
14/03/13 08:30:41.83 xoYJgDxQ
>>386
NGなんだから、厳密にする必要もない。面倒だから適当にしただけ。

392:デフォルトの名無しさん
14/03/13 08:35:07.76 xoYJgDxQ
>>390
基本的なとこは包括されてるから、コピペミスってるか、ttpか、多分丸投げだからJavaの正規表現の解釈が変わったか。
アプリ開発してたけど、そういう話は知らないなぁ。

393:378
14/03/13 08:41:19.60 2EBFZUmq
>>380
\n+だけだと空行以外の文字列の最後にもヒットしてしまいます。

>>381
すみませんヘルプに書いていました。
ありがとうございます。
(?#maxlines:50)^\n+
で置換することができました。

394:381,386 ◆QzqhRqBYxktP
14/03/13 09:50:43.55 1OBNO3pg
>>392
おそらくh抜き。datには<aタグが入らない板もあるからね。
/.*/ のとこは無くてもいいくらいだね、ハッキング事件のセキュ対応なんだろうし。

>>388>>393
^-^b

395:デフォルトの名無しさん
14/03/14 09:55:55.35 zoiay4j6
●Regular Expressionの使用環境
JavaScript

●検索か置換か?
置換

●説明
同じ文字の4回以上の繰り返しを3回にしたい

●対象データ
ああああああああああああああああああいいいいいいいいいいいいいいいうえおおおおおおおおおおおおおお

●希望する結果
あああいいいうえおおお

396:デフォルトの名無しさん
14/03/14 10:00:26.17 Mhqkzd/y
検索
(.)\1{3,*}

置換
$1$1$1

397:395
14/03/14 11:12:05.63 zoiay4j6
>>396
(.)\1{3,*}だとなぜか上手くいかなかったけど(.)\1{3,}でできました
ありがとうございました

398:デフォルトの名無しさん
14/03/14 16:48:20.08 Mhqkzd/y
あ、{3,*} は別の環境(proxomitron)の書式だった。ごめんね。

399:デフォルトの名無しさん
14/03/14 23:51:23.33 YZlgvtQG
正規表現の文字コード順について質問したいのですが
1行内に沢山文字があって、それを正規表現で検索ヒットさせるんですけど
正規表現は重いから、なるべく、あらかじめ文字コード順に直しておいたほうが良いという事を聞きました
数が膨大になっていけば、バカにならないので、一度全文文字コード順にソートしてみて、正規表現の検索の時間が
どれくらい軽くなるのか試してみようと思うのですが

そこで、文字コードにはShiftJIS等あるそうで、それらによって文字の並び方が違う、らしいのですが
どれが良いのか全く分かりません、それに正規表現にも種類があるのでしょうか

稚拙な質問ですみません、何か質問自体に大きな間違いがあれば、それについても御指摘ください

400:デフォルトの名無しさん
14/03/14 23:58:33.54 jnh1VUPi
> なるべく、あらかじめ文字コード順に直しておいたほうが良いという事を聞きました

どこで?

文字コード順にソートできる事例なんて
ほぼないだろ?

401:デフォルトの名無しさん
14/03/15 00:18:44.37 Q3mCogqK
ヒット率でならわかるけど文字コード順てイミフ

402:デフォルトの名無しさん
14/03/15 00:32:00.47 CF1cuZUb
>>399
もしかして特定の一文字を数えるのに正規表現を使おうとしてる?
そりゃあ正規表現は重すぎるだろうし一文字ずつソートしたほうが速いだろうね。

何がしたいの?

403:デフォルトの名無しさん
14/03/15 15:22:34.65 YATV051M
>>399
例文もなしに文字コード順とか言われてもイミフ
しかも文字コードの知識すらなさそうだけど、
\xnnnnや\unnnn(nは文字コード値)とかの
の文字コード直接指定の正規表現を使わない限りは
文字コードを意識する必要なんてほぼないよ

404:デフォルトの名無しさん
14/03/15 15:30:32.85 tYn4Fm5x
エスパーの俺が解説してあげよう。

配列の中からある値をサーチするときは
配列を文字コード順でソートしていれば速いんだよ。

ところでだな。正規表現は
文字をサーチするために使うんだよ

405:デフォルトの名無しさん
14/03/15 17:18:45.26 hD2AtX1A
傘スレが役に立ってる

406:デフォルトの名無しさん
14/03/15 18:18:58.17 uGEDgr8/
>>400-405
自分でも何言ってるのかさっぱり分かりません
それなのに質問してごめんなさい

> \xnnnnや\unnnn(nは文字コード値)とかの
> の文字コード直接指定の正規表現を使わない限りは
> 文字コードを意識する必要なんてほぼないよ
極単純な正規表現しか知らないものですから、一から勉強します
ありがとうございました

407:デフォルトの名無しさん
14/03/16 09:19:28.06 xU+OWlTt
>正規表現は重いから、なるべく、あらかじめ文字コード順に直しておいたほうが良い

こう言ってた人に真意を聞くのが筋でしょう。
たぶんこれを言った人も違う意味で言ったんだと思いますが。

408:デフォルトの名無しさん
14/03/16 18:15:16.01 TS+hDRL9
>>403
いや[亜-熙]みたいな範囲指定する場合はモロに影響する
ちゃんとキャラクタクラスなどを使えば問題はないのだが、
今度は使えるクラスが文字コードによって異なるっていう…

409:デフォルトの名無しさん
14/03/26 22:18:12.16 vsO28NG4
てすてす

410:デフォルトの名無しさん
14/03/27 06:17:49.40 iCbpA3l5
>>4 板移転↓

正規表現道場 Part2
スレリンク(php板)l50

411:デフォルトの名無しさん
14/03/29 00:31:17.46 2x5p0G/E
>>410
うん、わかった。覚えてたらな。

412:デフォルトの名無しさん
14/04/12 13:28:47.34 4XenY3RD
@abc
にはマッチしないで

@abcabc

@abcdef

にはマッチさせるにはどのように記述したら良いでしょうか?

413:デフォルトの名無しさん
14/04/12 13:50:15.31 U3ze+O2N
>>412
>>2のように記述したらいいと思うよ。

@abc(abc|def)

414:デフォルトの名無しさん
14/04/12 14:11:47.17 4XenY3RD
>>413
レスありがとうございます
後出し条件になってしまい大変申し訳ないですが

@abc の後に続く文字列は[0-9a-zA-Z]が連続したものです

例えば
@abcaaa @abcjoioho @abcvvvud
にはマッチして

@abc のみにはマッチしないように記述したいです

申し訳ありませんがもう一度ご教示頂きたいです。よろしくお願いします

415:デフォルトの名無しさん
14/04/12 14:14:15.07 4XenY3RD
更に追記させて下さい

@defghij @jijoaa @hogehoge

などの文字列にもマッチさせたいです

何度も投稿してしまい本当に申し訳ありません

416:デフォルトの名無しさん
14/04/12 15:19:18.59 s4x1CSLN
>>414
> @abc の後に続く文字列は[0-9a-zA-Z]が連続したものです

そのまま書けばええやん
@abc[0-9a-zA-Z]+

>>415
何をしたいのかよくわからんけど、@[0-9a-zA-Z] として、アプリ側で @abc を弾いた方がいいんじゃね?

417:デフォルトの名無しさん
14/04/12 15:21:49.29 s4x1CSLN
>>416
typo したわ

× @[0-9a-zA-Z] として
○ @[0-9a-zA-Z]+ として

418:デフォルトの名無しさん
14/04/12 20:05:08.80 ngoF8pDl
.NET2.0 System.Text.RegularExpressions.Regex;

検索です。
<p><a href="URLリンク(example.com"><)
<a href="URLリンク(example.com">)

このようなデータから、pタグに囲まれているexample.comのみを抜き出したいのですが、
一旦pタグごと抜き出してあとからreplaceするしかないのでしょうか?

419:デフォルトの名無しさん
14/04/12 20:41:47.82 rlCwOjmw
>>414>>415
@(?!abc)[0-9a-zA-Z]+

420:デフォルトの名無しさん
14/04/12 23:00:03.30 U3ze+O2N
>>418
xpathで一発。
と思ったが、a閉じてないし無理か。
その初めて見るデータの仕様がわからないと、どうしようもない。

421:デフォルトの名無しさん
14/04/12 23:50:11.34 jMhZwQAt
>>419
これだと
@abcabc
@abcdef
にはマッチしないか

422:デフォルトの名無しさん
14/04/12 23:50:28.43 75P4fa7h
こっちに書いたらscにも反映されちゃうのか、こっちをちらしの裏にしようと思ったのに。

423:デフォルトの名無しさん
14/04/13 00:33:19.28 yqZVS2ZT
test

424:デフォルトの名無しさん
14/04/13 07:57:10.90 Dl/ggmgg
一番内側のインライン要素は別に閉じる必要ないんじゃないっけ

425:デフォルトの名無しさん
14/04/13 11:58:54.95 wSq/pgWA
>>424
html はそこら辺アバウトだったから
xhtml では xml に合わせたから、解析しやすくなるはずなんだが、アバウトなままのサイトが一杯あるから苦労は変わらないままだったりする

426:デフォルトの名無しさん
14/04/13 16:31:19.64 9NN4C2hO
>>426
省略可能な奴はちゃんと定義されててアバウトじゃないんだけど、
流通してるHTMLとWebブラウザの実装がアバウトってだけだよ。
最近話題になったやつだと2ch。scの告知画面tinyurl。com/pjstnp7
はbodyタグのオープンとか省略しているけどW3Cの検証機を通る。
# エンコーディング周りはHTTPヘッダで回答してればセーフだし。

どこでこの話聞いたんだっけ・・・

427:デフォルトの名無しさん
14/04/13 16:44:43.25 CQggOOXO
スラドで見かけた

428:デフォルトの名無しさん
14/04/14 06:01:26.20 x8/AYQxN
あー、やっぱスラドか。一応ググったつもりだったんだがなぁ…
URLリンク(it.slashdot.jp)
そしてスラドのこんな記事の話題をこんなスレで振って返事があるとかびっくりだ。さんきゅ

429:デフォルトの名無しさん
14/04/14 07:43:22.83 HpK6ptq4
どうみても ./ と 2ch は住民かぶってるだろ

430:デフォルトの名無しさん
14/04/14 08:06:33.60 DuPxyPL7
ドッスラはカレントディレクトリなんだよなあ

431:デフォルトの名無しさん
14/04/14 09:13:38.05 HpK6ptq4
/. の pyto やね

432:デフォルトの名無しさん
14/04/14 22:47:36.55 qpVJ3EkT
なんでそう何度も前後逆になるんだ?
Intel厨?(little endian)

433:デフォルトの名無しさん
14/04/15 13:46:45.24 WaetxQT9
前後で考えるから逆だと思うわけで
高低で考えると逆じゃない

434:デフォルトの名無しさん
14/04/19 15:08:30.61 I0Tv5INM
ひまわりの肥料って何がいいですか?

435:デフォルトの名無しさん
14/04/21 10:46:09.60 epNqpaJy
●Regular Expressionの使用環境
サクラエディタ 2.1.1.1

●検索か置換か?
置換

●説明
[]内の文字だけにしたい
※ [ と ] と (半角スペース)の3つを消したい

●対象データ
[あいうえお] ←最後に半角スペースあり(以下同じ)
[カキクケコ]
[AIUEO]
[漢字等々]

●希望する結果
あいうえお←最後の半角スペースも消したい(以下同じ)
カキクケコ
AIUEO
漢字等々

436:デフォルトの名無しさん
14/04/21 12:03:19.19 3tZdYhCV
>>435
置換対象
[(.*) ]

置換後
$1

437:デフォルトの名無しさん
14/04/21 12:10:07.08 3tZdYhCV
すまんエスケープしないとダメだな
あとスペースの位置まちがってた
『』の中

置換対象
『\[(.*)\] 』

置換後
『$1』

438:デフォルトの名無しさん
14/04/21 12:44:34.05 EHF6HnLR
sakuraテキストエディタを使用しています。
20行くらいの文字列があります。
それぞれの行の、前後にabcとefgを追加したいです。
abc元の文字列efg
検索文字
(^*$)
置換え文字
abc\1efg
これを実行すると、元の文字列abcefgと各行に追加されます。
どのように正規表現を書けばいいか教えてください。

439:デフォルトの名無しさん
14/04/21 13:12:33.14 7sVNkmyi
検索文字
^(.+)$
置換
abc\1efg

440:デフォルトの名無しさん
14/04/21 13:38:17.94 3tZdYhCV
サクラには始点挿入と終点追加の機能もあるんやで

441:デフォルトの名無しさん
14/04/21 14:49:46.24 EHF6HnLR
>>439
できました!!
ありがとうございます。

>>440
そんな機能もあったんですね、調べてみます。

442:デフォルトの名無しさん
14/04/24 17:52:09.55 V1UpyXxT
挿入!
ヤラシイ

443:デフォルトの名無しさん
14/04/25 20:18:46.86 JH0TWYKX
秀丸エディタの正規表現

「改行を含む0文字以上の任意の文字列」 を指定するにはどうしたら良いでしょうか?

.+

だと改行が含まれません。
対処法を教えて下さい・・・・

444:デフォルトの名無しさん
14/04/25 20:42:22.63 GDJFN5mS
\r\n

445:デフォルトの名無しさん
14/04/25 20:48:34.44 JH0TWYKX
>>444
すいません上手く行きません。

[\.\n]+
[\s\S]+

これでもダメです。

446:デフォルトの名無しさん
14/04/25 21:06:21.53 JH0TWYKX
訂正。
[.\n]+
これでもダメ。

[\S\s\n]+
これだとマッチしたりしなかったり。
挙動がよく分かりません。

447:デフォルトの名無しさん
14/04/25 21:48:48.71 BpGWRq7/
ヘルプの
目次- 検索系コマンド- 正規表現- \nを使った複数行検索の際の制限について

秀丸で改行を含む正規表現はうまくいかないのであきらめよう

448:デフォルトの名無しさん
14/04/25 21:57:52.26 JH0TWYKX
秀丸エディタスレに移動します。お邪魔しました。

449:デフォルトの名無しさん
14/04/25 21:59:23.54 JH0TWYKX
>>447 アドバイスありがとうございました。

450:デフォルトの名無しさん
14/04/26 15:24:01.32 FDgGm5F+
Win7に入れたcygwinで、以下のようなテキストファイル

いろんな文字Text11いろんな文字
いろんな文字Text215いろんな文字
いろんな文字Text351いろんな文字
...

から
Text11
Text215
Text351
を取り出したいのです。
をgrepやsedでトライしたのですが、分りません。
よろしく。

451:デフォルトの名無しさん
14/04/26 15:48:21.91 bHDNIx6I
>>450
てきとーだけど
sed 's/^.*\(Text[0-9]*\).*$/\1/'

452:デフォルトの名無しさん
14/04/26 16:09:16.64 FDgGm5F+
>>451
ありがとうございます。出来ました。

453:デフォルトの名無しさん
14/04/26 17:58:23.86 7YL+swb1
grep -o Text[0-9]*
の方が楽でない

454:デフォルトの名無しさん
14/04/26 18:56:42.33 FDgGm5F+
>>453
ありがとうございます。こんな技があったとは。。。素晴らしい。

455:デフォルトの名無しさん
14/04/26 23:18:57.81 VGAf199r
せいきなんとかURLリンク(akiba.geocities.jp)

456:デフォルトの名無しさん
14/05/07 18:40:40.37 a4cm40Cx
●Regular Expressionの使用環境
Emeditor(正規表現エンジン:Perl)

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
評価良い
評価悪い
評価ふつう


●希望する結果
”評価良い”の ”評価” と
”評価悪い”の ”評価” はヒットさせず、
”評価ふつう”の ”評価” のみヒットさせたいです。

457:デフォルトの名無しさん
14/05/07 18:41:19.38 a4cm40Cx
>>456の続きです

下の検索ワードで個々に正規表現検索すると、
評価(?!良い)
評価(?!悪い)

評価(?!良い) で検索すると、
評価悪い
評価ふつう

上の行の”評価”がヒットし、

評価(?!悪い) で検索すると、
評価良い
評価ふつう

上の行の”評価”がヒットします。


評価(?!良い)|評価(?!悪い) で検索すると、
評価ふつうの”評価”のみヒットさせていたのですが、

評価良い
評価悪い
評価ふつう

上の3行全ての”評価”がヒットしてしまいます。

評価ふつうの”評価”のみヒットさせるにはどのようにすれば良いでしょうか。
お分かりの方おりましたら、アドバイス頂けるとうれしいです。よろしくお願いします。

458:デフォルトの名無しさん
14/05/07 21:20:41.89 bY3JnOhr
>>457
評価(?!良い|悪い)
評価(?!良い)(?!悪い)

459:デフォルトの名無しさん
14/05/07 22:51:13.63 N+3a4ufs
Perlって(?=)使えないの?
それにしても説明文章ヘタクソだな

460:デフォルトの名無しさん
14/05/07 23:10:01.42 QGVowAzN
>Emeditor(正規表現エンジン:Perl)
とか言ってる時点で・・・
Emeditorの正規表現はBoost Regex++や

461:デフォルトの名無しさん
14/05/08 00:29:38.20 ZNqlRNij
>>458さん
ありがとうございます。試させて頂いたところマッチしました。
そのような書き方になるのですね、とても参考になりました。

文章長くなってスミマセン。
"EmEditor は、Perl の正規表現構文に基づいています"と記載があったので今までPerlだと思ってました。。
確認しましたらBoost Regex++でした。。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch