[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 15:05 / Filesize : 175 KB / Number-of Response : 729
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

正規表現 Part6



1 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:36:04 ]
正規表現(Regular Expression)スレです。

質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。

【 前スレ 】 正規表現 Part5
pc12.2ch.net/test/read.cgi/tech/1212498448/

411 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:27:48 ]
>>406
これはひどい。
local-partの記号類をまったく受け付けないじゃん。
Gmailの拡張アドレスが弾かれちゃうね。


412 名前:デフォルトの名無しさん [2009/08/28(金) 14:29:02 ]
>>411
「マッチするなら電子メールアドレスである事が保証できる 」
を満たせばおkなんじゃないの?

413 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:37:11 ]
極端な話だけど/foo@example\.com/も条件を満たすよ
>>397はそういうジョークだろう


414 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:24:14 ]
>>412
そういう意味ならなおさら >>406 はまるでダメでしょ。
電子メールアドレスでないものも余裕でマッチする。

415 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:27:38 ]
これはどうなん?

search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlfaq9.pod#How_do_I_check_a_valid_mail_address?

416 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:33:15 ]
>>415
ああ、俺もそれ使ってるわ。

日本語の解説はこれな。
ttp://blog.livedoor.jp/dankogai/archives/51189905.html


417 名前:デフォルトの名無しさん [2009/08/28(金) 15:40:45 ]
>>416
そのページにあるリンク先見てて思ったんだが
[.] とか [@] って何の意味があるんだろ。

ときどき目にするんだが。。

418 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:04:50 ]
>>417
[@]はあんまり意味がないと思うけど、[.]は\.を使うよりいい(見やすい?)と、Damian Conway先生が
言ってたような気がする。

419 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:16:48 ]
>>415
そこに書いてある、このモジュールを使えばいいんかな?

RFC::RFC822::Address -- RFC 822 style address validation. - search.cpan.org
search.cpan.org/~abigail/RFC-RFC822-Address-2009040601/lib/RFC/RFC822/Address.pm



420 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:43:24 ]
>>417
[@] は配列が展開されるのを防ぐのかな?

421 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:47:38 ]
>>409
ジョークか?

422 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 21:11:37 ]
Javaでも20行未満で書けるレベルの処理だろうに。

423 名前:デフォルトの名無しさん [2009/08/28(金) 21:23:59 ]
>>422
それもう面白くないよ。

424 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:58:46 ]
    /:::::::ヽ____/::::::::ヽ、
   丿 ::.__  .:::::::::::::  __  ::::ヽ_       ,. 、       /   /
  / /。 ヽ_ヽv /: /。ヽ  ::::::ヽ    ,.〃´ヾ.、  /  /
 / / ̄ ̄√___丶  ̄ ̄\  ::::| / |l     ',  / /
 | .:::::::::: / / tーーー|ヽ     ..::::: ::|r'´  ||--‐r、 ',   javaなら20行で書ける!!
 | .:::::.  ..: |    |ヽ   .,..ィ'´     l',  '.j '.    javaなら20行で書ける!!
 | :::    | |⊂ニヽ| |  'r '´         ',.r '´ !|  \
 | :    | |  |:::T::::| !  l!     ....:.:.:.:.:.:ヽ、   ,l    \
 \:    ト--^^^^^┤   ゝ、.,_ ---‐‐‐----ゝ、ノ

425 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 02:27:04 ]
ちなみにJavaなら20行未満で書けるぞ

426 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 07:51:01 ]
\ 地獄ですね

427 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 09:40:01 ]
「全然」が現れてから次の「。」までに「ない」「なく」「なかった」「ません」が来ない文にマッチさせるには?

428 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:41:16 ]
/全然(?!ない|なく|なかった|ません).*。/

429 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:23:45 ]
松来未祐と金田朋子のRADIOデコピンないと、ひぐらしのなく頃に、本当にすまなかったと思っている、うちのタマ知りませんか
等もマッチしなくなるよ



430 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 14:01:20 ]
>>429
字面だけで処理しようってんだから、そこまで気にしてやる必要は無いんではないか

431 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:57:51 ]
>>428
"全然勝負にならない。" にマッチしちゃうよ。

432 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 01:06:53 ]
全然問題ない
全然なくならない

433 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 01:21:30 ]
>>428
正規表現メモ
www.kt.rim.or.jp/~kbk/regex/regex.html#POSITIVELOOKAHEAD

「よくある勘違い」

434 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 01:32:27 ]
ツッコまれること前提で片手間に書いたのに、やっとツッコんでもらえたw

/全然(?!.*?(?:ない|なく|なかった|ません)).*?。/
これでどうだ

435 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 02:32:07 ]
キュウリを突っ込んで欲しいのか?
魚肉ソーセージを突っ込んで欲しいのか?

436 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:08:55 ]
全然((?!ない|なく|なかった|ません).)*。

437 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:27:07 ]
>>434 >>436
検索してみたら「全然参考にならないんだ、悪いけど。」にマッチしてる。

438 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:13:55 ]
>>437
Perl と Ruby で試してマッチしないんだけど、どんな正規表現エンジン使ってるの?

439 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:25:44 ]
>>437
お前のレス全然参考にならないんだ、悪いけど。



440 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:30:23 ]
>>438
これ。内部エンジンがどうなっているのかよく分かんない。
ttp://www.kotonoha.gr.jp/cgi-bin//search_form.cgi?viaTopPage=1

441 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:00:44 ]
>>427 = >>440 なのか?
>>1 をよく読んで出直せ。

442 名前:441 mailto:sage [2009/09/01(火) 23:09:11 ]
まあいいや。 >>427 = >>440 と仮定して。

>>440 のをちょっと試してみたけど、
「前後文脈の指定について」の後文脈の例を見るとわかるように、
「検索文字列」の直後のパターンを指定したい場合は、
文字列先頭のアンカを指定する必要があるみたい。
例えば >>436 のを参考にこんなんでいけるかと。

^((?!ない|なく|なかった|ません).)*。

443 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:16:52 ]
>>441
ごめんなさい。

>>442
おおお、できた。ありがとう。

444 名前:デフォルトの名無しさん [2009/09/04(金) 13:45:50 ]
お時間あればよろしくおねがいします

●正規表現の使用環境
.NET Framework 2.0
●検索か置換か?
置き換え
●説明
ランダムな文字列内に繰り返す言葉を1つにまとめたい
●対象データ
abcdddddde
こんにちちちちちちわ
!+++**!
●希望する結果
abcde
こんにちわ
!+*!

445 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:20:02 ]
>>444
s/(.+?)\1+/$1/g

ドトネトだとこんな感じか

Regex re = new Regex( @"(.+?)\1+" );
Console.WriteLine( re.Replace( "abcdddddde", "$1" ) );

446 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:23:20 ]
s/(.)\1+/$1/g
でもいいな

447 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:46:35 ]
>>445
ありがとうございます、なるほど・・・
PHPだけで他の言語や正規表現はサッパリで、助かりました

448 名前:デフォルトの名無しさん [2009/09/04(金) 23:55:59 ]
Javaでもやれ

449 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:56:44 ]
20行で書けるからな



450 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:38:25 ]
PHPでも20行で書けるな

451 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:33:57 ]
●正規表現の使用環境
PCRE7

●検索か置換か?
検索

●説明
HTMLマーク付けされていないURLを探したい

●対象データ
example1.com/ <a href="example2.com/">example2.com/</a> example3.com/

●希望する結果
example1.com/
example3.com/

452 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:55:22 ]
「けちなマッチング」ってもっと他の言い方ないの?

453 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:54:51 ]
けちなマッチング、という言い方は知らないのだけど、
非欲張りな繰り返しのこと? それとも逆に強欲な繰り返しのこと?

454 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:24:21 ]
最短一致とかいろいろな言い方あるね

455 名前:デフォルトの名無しさん [2009/09/17(木) 13:12:34 ]
●正規表現の使用環境
VBScript

●検索か置換か?
置換

●説明
ソースコードの関数を置換したい

●対象データ
1 FuncA(1,2,3)
2 FuncA(1,FuncB(2,3),4)
3 FuncA(1,"string2,3",4)
4 FuncA(1,2,3):FuncD(1,2,3)

●希望する結果
1 FuncC(3,1,2)
2 FuncC(4,1,FuncB(2,3))
3 FuncC(4,1"string2,3")
4 FuncC(3,1,2):FuncD(1,2,3)
とりあえず対になる()の特定方法が知りたいです・・



456 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:10:43 ]
正規表現以前に、単語単位でFuncA->FuncCを置換したら済む話じゃね?

457 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:59:50 ]
関数の仕様というか引数の順番も変更になってるっぽいからダメそう。

カッコのネストの深さを限定すればあるいは。

458 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:26:50 ]
>>455
ネスト数を限定すれば書けるが汚くなるのは言うまでもない。

459 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 09:51:28 ]
perlの正規表現の(?PARNO)みたいに再帰を書けるように
拡張されたのを使えばなんとかなるけどあれを正規表現と
呼んでいいのか激しく疑問w

さらに全く正規表現じゃなくなるが頭に

#define FuncA(x,y,z) FuncD(z,x,y)

を追加してcppに食わせれば一発なんだけどね。

% cat hoge
#define FuncA(x,y,z) FuncC(z,x,y)

1 FuncA(1,2,3)
2 FuncA(1,FuncB(2,3),4)
3 FuncA(1,"string2,3",4)
4 FuncA(1,2,3):FuncD(1,2,3)
% cpp hoge
# 1 "hoge"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "hoge"


1 FuncC(3,1,2)
2 FuncC(4,1,FuncB(2,3))
3 FuncC(4,1,"string2,3")
4 FuncC(3,1,2):FuncD(1,2,3)



460 名前:デフォルトの名無しさん [2009/09/18(金) 13:14:55 ]
スルーされにくい質問のテンプレと例

●正規表現の使用環境
5.10.0

●検索か置換か?
置換

●説明
先頭の<と行末の>を削除したい

●対象データ
<XXXXXX>
XXXXXX>
<XXXXXX

●希望する結果
XXXXXX


461 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:16:46 ]
スルー力を試されているのか?

462 名前:デフォルトの名無しさん [2009/09/18(金) 13:24:16 ]
>461
な、なぜだ…このテンプレつかてるのに。
あ。パールです…

463 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:31:32 ]
> ●正規表現の使用環境
> 5.10.0

言いたいことはわからんでもないが。

464 名前:デフォルトの名無しさん [2009/09/18(金) 13:34:45 ]
>463
Linux 2.6.30.5-43.local.fc11.i686.PAE #1 SMP Wed Sep 16
16:46:32 JST 2009 i686 i686 i386 GNU/Linux

あら勘違いしたかな?これでだいじょぶですか?

465 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:39:08 ]
>>460
しむらー、一行目

/^<?(.*?)>?$/
Perlでは実行確認してないけど多分大丈夫だろ

466 名前:デフォルトの名無しさん [2009/09/18(金) 13:43:34 ]
>465
うわーありがとう。
もーちょっとだったのに汗
助かりました。

467 名前:455 mailto:sage [2009/09/18(金) 14:49:49 ]
簡単には出来なそうなんですね。わかりました。
対になる()や[]の一致書式の方はありますか?
これが出来れば結構いろいろ応用がききそうなんですが。


468 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 15:32:46 ]
厳密な意味での正規表現では無理なことの代表的なものが、括弧の対応。
最近の拡張ではできるものもあるけど、やりかたがそれぞれなので、
一般的に説明できない。

つーかその例のようなのは>>459の言うようにcpp使うのが楽だな。

469 名前:デフォルトの名無しさん [2009/09/18(金) 18:48:14 ]
「正規」表現って言い方ってどうよ?

正規分布 normal distribution
正規表現 regular expression




470 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 19:22:31 ]
別に?

混乱するからどうしてもと言うなら
統計学のnormalを「標準」とでも脳内変換しとけ

471 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 20:03:18 ]
>>469
何が問題なの?
異なる言語で単語が一対一に写像するなんてことは有り得ないんで、
その程度の不整合でいちいち悩んでると人生辛くなるよ。

472 名前:455 mailto:sage [2009/09/18(金) 22:35:18 ]
括弧処理には向いていないのでしたか。
それがわかっただけでも満足です。ありがとう。

473 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:05:45 ]
>>181
これ読んでみたけど本当に良い本だった。世界的に認められてるだけのことはある。
数学丸出しなのでかなり難しい内容だけど、オライリーのフクロウ本を一通り読んで
DFAとNFAの違いを知りたいというモチベーションがあれば読み進められるかも。

474 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:16:09 ]
/ヽ(´ー`)人(´∇`)人(`Д´)ノ/

475 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 20:12:29 ]
カッコの対応を見つけるのって無理なのか・・・。意外だった。

476 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 21:36:59 ]
C#の正規表現で悩んでいます。
お時間あればよろしくおねがいします

●正規表現の使用環境
.NET Framework 3.5
●検索か置換か?
置き換え
●説明
()の文字を取り除きたい
●対象データ
W(ジョーカー)
W(ルナ)
●希望する結果
W
W

string Title = "W(ジョーカー)";
string nobrackets = "<title>(.*)";
Regex re = new Regex(nobrackets);
Match m = re.Match(Title);
Title = m.Groups["title"].Value;

で、nullなんです。アドバイス乞う…。


477 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 22:15:26 ]
(1)あんまり弄らなかった方
string Title = "W(ジョーカー)";
string nobrackets = @"(?<title>W)\(.*\)";
Regex re = new Regex(nobrackets);
Match m = re.Match(Title);
Title = m.Groups["title"].Value;

(2)ちょっと弄ってみた方
string Title = "W(ジョーカー)";
string nobrackets = @"\(.*\)";
Regex re = new Regex(nobrackets);
Title = re.Replace(Title, "");

>>476
何がしたいのかをもうちょっと良く考えてみるといい

478 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 22:15:26 ]
本当に取り除くだけでいいのなら、こんな感じ?
Title = Regex.Replace(Title, @"\(.*?\)", "");

479 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 22:52:03 ]
thanks!



480 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 11:17:01 ]
C#の正規表現で質問です。
●正規表現の使用環境
.NET Framework 3.5
●検索か置換か?
置き換え
●説明
ホームページのすべてのタグを取り除きたい
●対象データ
www.asahi.com/shopping/pc_camera/special/TKY200909240072.html
●希望する結果
プレーンテキスト
●現状
');
document.write('');
//-->
などいくつかのタグが残る状況です。
●いま書いている正規表現
Regex regex = new Regex("<.*?>", RegexOptions.Singleline);
html = regexRemoveAllTag.Replace(html,"");


481 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 11:35:31 ]
>>480
「いま書いている正規表現」の処理の前段で <script>...</script> を削除すると良いと思われ。

482 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 12:14:56 ]
早速ありがとうございます。
html = Regex.Replace(html, "<script>.*</script>", "");
Regex regex = new Regex("<.*?>", RegexOptions.Singleline);
html = regexRemoveAllTag.Replace(html,"");
としてみましたが、状況に変化なしです。


483 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 12:56:40 ]
えーと、前段の方は <script.*[^>]>.*?</script> みたいな感じで Multiline で。

484 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 13:02:57 ]
>>480
何でそうなるかの原因を考えよう。
想定と違う動きをした箇所を比較してみるといい。
document.write('ipt>');
といった、JavaScript内で閉じタグを記述してる箇所に正規表現がひっかかって');が残る。
だから481は<script type= .... </script>を先に除去すればいい、って言ってるのでしょう。

485 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 13:44:24 ]
> html = Regex.Replace(html, "<script>.*</script>", "");
なんでこっちだけRegex.Replaceなんだ?

たぶん、これでいいんじゃないかな
Regex regex1 = new Regex("<script>.*?</script>", RegexOptions.Singleline);
Regex regex2 = new Regex("<noscript>.*?</script>", RegexOptions.Singleline);
Regex regex3 = new Regex("<.*?>", RegexOptions.Singleline);
html = regex1.Replace(html,"");
html = regex2.Replace(html,"");
html = regex3.Replace(html,"");

486 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 18:34:41 ]
みなさん、ありがとうございます。
>>485
これがいちばんいけそうです。
www.asahi.com/showbiz/stage/spotlight/OSK200909250086.html
をやってみたら、まだ下のほうにだいぶタグが残るのですが…。

>>484
考えながらやってみてはいるのですが、のこったタグの原因はほとんど判読不明…。
たとえば、
impAserver = "imp.asahi.com";
が残るのですが…。

>>483
実際に試したところ、multilineよりはsinglelineのほうが、タグを除去できる率は高いようです。


487 名前:484 mailto:sage [2009/09/25(金) 19:22:18 ]
>>486
ほんとに考えてるのかなあ……。
<script>だと<script type="text/.... って書いてあるのに引っかからないわけですよ。

var wc = new WebClient() { Encoding = Encoding.GetEncoding("EUC-JP") };
var html = wc.DownloadString("www.asahi.com/showbiz/stage/spotlight/OSK200909250086.html ");
var result = Regex.Replace(html, "<script.*?</script>", "",RegexOptions.Singleline);
result = Regex.Replace(result, "<.*?>", "", RegexOptions.Singleline);
Console.WriteLine(result);

488 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 02:10:55 ]
考えてない、考えてない・・・
他人の書いたのをコピーしてるだけ。

489 名前:483 mailto:sage [2009/09/26(土) 02:30:20 ]
>>486
> 実際に試したところ、multilineよりはsinglelineのほうが、タグを除去できる率は高いようです。
率とかそんなんじゃなくてさあ、 HTML のソース見て考えてる?
もうめんどくせえなあ。



490 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 00:50:56 ]
>>486
えーと、差分を見る方法を用意してる?
処理前と処理後を比較すれば、どこが除去されたのか
すぐ分かるはずなんだけど。

windiffとかWinMergeでも使え。

491 名前:デフォルトの名無しさん [2009/10/01(木) 07:09:09 ]
わかりました

492 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 07:11:38 ]
HTMLのサニタイゼーションに正規表現を使うなと……

493 名前:デフォルトの名無しさん [2009/10/01(木) 13:32:47 ]
先頭の改行(LF)を削除するにはどうすればいいのでしょうか?
$text =~ s/^\n//s; では削除されませんでした。

494 名前:493 [2009/10/01(木) 13:38:11 ]
あ、されてました。
2つ改行がありました。

2つの改行を削除するには、/^\n\n//では削除されませんでした。

495 名前:493 [2009/10/01(木) 13:42:36 ]
あれ?
これは改行じゃないのかもしれない。
なんかあります。
$textの先頭に改行される何かがあります。
CRLF、CR、LFのいずれもないのに、改行される何かがあるんです。

496 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 13:46:00 ]
BOMか?

497 名前:493 [2009/10/01(木) 13:56:53 ]
>>496
BOMじゃないですが、UTF-8です。

498 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 14:02:12 ]
コード16進で表示すると何が出る?

499 名前:493 [2009/10/01(木) 14:03:40 ]
/^\n//をやった直後に/^.//で最初の得体も知れない改行を削除しますと、◆の中に?がある文字が2つ出ました。
しかも、次の文字が消滅しました。



500 名前:493 [2009/10/01(木) 14:06:35 ]
>>498
16進数での開き方を調べます。

501 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 14:08:20 ]
楽しそうだな。これを機会にコンピュータ上で文字はどのように
表現されているのか勉強するといいと思うよ。

502 名前:493 [2009/10/01(木) 14:16:26 ]
バイナリエディタで開いてみました。
その不気味な改行の部分は、EF BB BF 0D 0A E3でした。
この正体は何なのでしょうか?

>>501
勉強がんばってみます。

503 名前:493 [2009/10/01(木) 14:23:57 ]
EF BB BFってどうやらBOMですね。
何とかしてみます。

504 名前:493 [2009/10/01(木) 14:26:08 ]
でも出力されたテキストをメモ帳で保存したからBOMが付いたのかも知れませんね。
よく分かりませんね。

505 名前:493 [2009/10/01(木) 14:39:43 ]
すみません。
全てはポックンのミスでした。
改行コード消した後に、改行コード付加してました。
BOMとか関係ありませんでした。
BOMはメモ帳で開いたから付加されただけでした。
0D 0AはCRLFの改行コードでした。
本当にありがとうございました。

506 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 13:21:12 ]
>>455
勉強がてら、ActivePerl 5.8.8で作ってみた。
色々調べて、いい勉強になった。

my $re1 = qr/(?:[^(),]+|"(?>(?:(?>[^"\\]+)|\\.)*)")*/;
our $re2 = qr/\w+\((?:(??{$re1}),?|(??{$::re2}))*\)/;

my @s = qw{
FuncA(1,2,3)
FuncA(1,FuncB(2,3),4)
FuncA(1,"string2,3",4)
FuncA(1,2,3):FuncD(1,2,3)
FuncA(1,FuncB(2,FuncC(3,"4),(5"),"\","),6)
};

for (@s) {
print "$_\n";
s/FuncA\(($re1|$re2),($re1|$re2),($re1|$re2)\)/FuncC($3,$1,$2)/;
print "$_\n\n";
}

507 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 23:48:11 ]
VB.NETの正規表現で質問です。
●正規表現の使用環境
.NET Framework 3.5
●検索か置換か?
置き換え
●説明
2行以上の連続した空の行(全角、半角スペースのみの行、または改行のみの行)を2行にしたい。
(1行の空の行は1行のまま、2行の空の行は2行のまま)
●対象データ
AAA

BBB



CCC
●希望する結果
AAA

BBB


CCC
●現状

●いま書いている正規表現
Dim r As Regex = New Regex("<.*?>", RegexOptions.Multiline)

よろしくお願いします。

508 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 02:31:35 ]
その「いま書いている正規表現」ってのは何を思って書いたの

509 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:20:24 ]
<.*?>  
・・・これは・・・。



510 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:28:14 ]
"3行以上"の"空白行"を最長一致させて、それを2行の空白行に置換すれば良いんじゃない?
今確認出来る環境じゃないんで、適当に書くけども。

([  ]*/n){3}  →  /n/n  に置換。

こんなイメージでどう?スペース入ってるけど、投稿すると消えるとおもう。

511 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:32:25 ]
\n\n\n\nが\n\n\nにならないか?つーかスラッシュ?

((\s| )*\n){2,}






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<175KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef