■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
|
|