C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 58 を表示中)
■32850 / )  Re[5]: リッチテキストボックスの中身を検索する
□投稿者/ よねKEN (264回)-(2009/02/16(Mon) 17:19:43)
> string aa = "xx@hYASHIRO_A201BSクリスー、飯まだかー?";
>
> Match m = Regex.Match(aa, "(?<moji>@h[\\w_]*)");

この部分を修正して、
Match m = Regex.Match(aa, "(?<moji>@h[\\w]*)",RegexOptions.ECMAScript);
とするか、
Match m = Regex.Match(aa, "(?<moji>@h[a-zA-Z_0-9]*)");
とするとよいと思います。

> 本来ならば@h以降の英数字&アンダーバーということで出力が
> YASHIRO_A201BS
> となるはなのですが、何故か
> YASHIRO_A201BSクリスー
> となり、BS以降の全角文字が何文字か英数文字と認識されてしまいます

.NET Frameworkでの正規表現では、\wは「単語に使用される任意の文字」を意味する文字クラスですので、
英数字だけにマッチするわけではありません。
ECMAScript 準拠の動作を指定した場合は、\w は [a-zA-Z_0-9]と等価だそうです。

↓以下を参照。
文字クラス
http://msdn.microsoft.com/ja-jp/library/20bw873z.aspx
返信 編集キー/


管理者用

- Child Tree -