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

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

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

Re[1]: 正規表現でデータの取り出し方が分かりません。


(過去ログ 117 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■68700 / inTopicNo.1)  正規表現でデータの取り出し方が分かりません。
  
□投稿者/ 初めてのC# (3回)-(2013/11/07(Thu) 23:28:11)

分類:[C#] 

2013/11/07(Thu) 23:41:52 編集(投稿者)
2013/11/07(Thu) 23:28:55 編集(投稿者)

postLikeCount_*****
という値のデータがあり、


_以降の*****をメッセージボックスで表示したいのですが、
上手くできません。

id = id.Substring(14);
MessageBox.Show(id);

では取得できますが、

正規表現で取るとどうやるのかが分かりません。
下記の様にしてみましたが駄目でした。

string id = "postLikeCount_31575551";
Regex re = new Regex("postLikeCount_(.*?)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match mc = re.Match(id);
MessageBox.Show(mc.Groups[1].Value);

これだと取得できません。

正規表現がよくわかりません。

どの様にすれば良いのでしょうか?

よろしくお願いします。
引用返信 編集キー/
■68701 / inTopicNo.2)  Re[1]: 正規表現でデータの取り出し方が分かりません。
□投稿者/ 魔界の仮面弁士 (413回)-(2013/11/08(Fri) 00:25:52)
No68700 (初めてのC# さん) に返信
> 正規表現で取るとどうやるのかが分かりません。

string id = "postLikeCount_31575551";
string result = Regex.Match(id, "(?<=postLikeCount_).*").Value;

引用返信 編集キー/
■68703 / inTopicNo.3)  Re[2]: 正規表現でデータの取り出し方が分かりません。
□投稿者/ 初めてのC# (4回)-(2013/11/08(Fri) 04:25:27)
No68701 (魔界の仮面弁士 さん) に返信
> ■No68700 (初めてのC# さん) に返信
>>正規表現で取るとどうやるのかが分かりません。
>
> string id = "postLikeCount_31575551";
> string result = Regex.Match(id, "(?<=postLikeCount_).*").Value;

ありがとうございます。
大変勉強になりました。
解決済み
引用返信 編集キー/
■68704 / inTopicNo.4)  Re[1]: 正規表現でデータの取り出し方が分かりません。
□投稿者/ shu (415回)-(2013/11/08(Fri) 08:50:10)
2013/11/08(Fri) 08:50:28 編集(投稿者)

No68700 (初めてのC# さん) に返信

> string id = "postLikeCount_31575551";
> Regex re = new Regex("postLikeCount_(.*?)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
> Match mc = re.Match(id);
> MessageBox.Show(mc.Groups[1].Value);
>
ここの?は最短一致の意味になるので
postLikeCount_
が該当する文字列になってしまいます。
すべてを一致させる為には?を付けてはいけません。
なので
Regex re = new Regex("postLikeCount_(.*)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
とすればよいです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -