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

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

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

Re[10]: 正規表現


(過去ログ 101 を表示中)

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

■60219 / inTopicNo.1)  正規表現
  
□投稿者/ おお (2回)-(2011/06/23(Thu) 10:01:40)

分類:[.NET 全般] 

2011/06/23(Thu) 11:27:15 編集(投稿者)
2011/06/23(Thu) 10:44:57 編集(投稿者)

テキストファイルから正規表現で読み込みます。

Shared a As New Regex(" ") '

Dim collection As MatchCollection = a.Matches

の方法で読み込みます。

もし、テキストの行の頭に「//」があれば読込まないようにしたいです。

どうすればいいですか?
引用返信 編集キー/
■60220 / inTopicNo.2)  Re[1]: 正規表現
□投稿者/ 逆運の覇者 (13回)-(2011/06/23(Thu) 10:26:19)
Shared a As New Regex("^[^/]{2}.+")

区切って解説すると、
^   先頭
[^/]  /以外
{2}  2回
.   すべての文字
+   1回以上


組み合わせると、
^[^/]で「先頭は/ではない」。
{2}とあわせると、「先頭は//ではない」。
.+は「なんでもOK」。


引用返信 編集キー/
■60221 / inTopicNo.3)  Re[2]: 正規表現
□投稿者/ ツつィツつィ (2回)-(2011/06/23(Thu) 10:31:59)
ありがとうございます。

追加があります。




Shared a As New Regex("^[^/]{2}.+")

上記の後に、(?<n>\d+)
を追加したいです。

まとめると、初めが、//以外で次が数字の連番をぬきだしたいです。
引用返信 編集キー/
■60222 / inTopicNo.4)  Re[3]: 正規表現
□投稿者/ おお (3回)-(2011/06/23(Thu) 10:32:24)
上記は私です。
引用返信 編集キー/
■60223 / inTopicNo.5)  Re[4]: 正規表現
□投稿者/ おお (4回)-(2011/06/23(Thu) 10:52:48)
先ほどのだと、

複数行に対応していませんか?
引用返信 編集キー/
■60224 / inTopicNo.6)  Re[3]: 正規表現
□投稿者/ ズッコ (1回)-(2011/06/23(Thu) 10:56:31)
No60221 (ツつィツつィ さん) に返信

> まとめると、初めが、//以外で次が数字の連番をぬきだしたいです。

この文章を忠実に解釈すると、たとえば"aa1234"ならば"1234"を抜き出したいというように理解できるが、
そういうこと?

おそらくこの文章は誤解を与えているのではないかと思うので、例を挙げてほしい。
なお、外国国籍の方など、日本語が苦手な方ならば仕方ないが、
だれが見てもわかるような文章で質問してほしい。
引用返信 編集キー/
■60225 / inTopicNo.7)  Re[5]: 正規表現
□投稿者/ おお (5回)-(2011/06/23(Thu) 11:05:09)
No60223 (おお さん) に返信

すみません。

整理します。

00 aa
// 00 aa

の2つがあるとします。
私が抜き出したいのは、上側だけです。
「//」があるものははぶきたいです。

形としては、
//以外 + 数字です。
引用返信 編集キー/
■60227 / inTopicNo.8)  Re[6]: 正規表現
□投稿者/ ペイリン (1回)-(2011/06/23(Thu) 11:09:19)
> 00 aa
> // 00 aa
>
> の2つがあるとします。
> 私が抜き出したいのは、上側だけです。
> 「//」があるものははぶきたいです。

なら、//はどうでもよくて、数字で始まっているものにマッチすればいいんじゃない?
(パターンとしては"^\d+"かな?)
引用返信 編集キー/
■60228 / inTopicNo.9)  Re[7]: 正規表現
□投稿者/ おお (6回)-(2011/06/23(Thu) 11:16:43)
2011/06/23(Thu) 11:23:26 編集(投稿者)

No60227 (ペイリン さん) に返信
>>00 aa
>>// 00 aa
>>
>>の2つがあるとします。
>>私が抜き出したいのは、上側だけです。
>>「//」があるものははぶきたいです。
>
> なら、//はどうでもよくて、数字で始まっているものにマッチすればいいんじゃない?
> (パターンとしては"^\d+"かな?)

そうですね。
Dim collection As MatchCollection = (File.ReadAllText
を使って読込んでます。

そうすると、1行目しかみてないみたいです。
複数行の読み込みができていないです。
引用返信 編集キー/
■60229 / inTopicNo.10)  Re[8]: 正規表現
□投稿者/ ペイリン (2回)-(2011/06/23(Thu) 11:21:30)
No60228 (おお さん) に返信
>>なら、//はどうでもよくて、数字で始まっているものにマッチすればいいんじゃない?
>>(パターンとしては"^\d+"かな?)
>
> そうですね。
> Dim collection As MatchCollection = getKnownAtack.Matches(File.ReadAllText
> を使って読込んでます。
>
> そうすると、1行目しかみてないみたいです。
> 複数行の読み込みができていないです。

getKnownAtackって何?

> Shared a As New Regex(" ") '

> Dim collection As MatchCollection = a.Matches

じゃないの?

aのインスタンスを作成するときに、Regexコンストラクタの第二引数にRegexOptions.Multilineを設定すれば
いいんじゃないの?
引用返信 編集キー/
■60230 / inTopicNo.11)  Re[9]: 正規表現
□投稿者/ おお (7回)-(2011/06/23(Thu) 11:26:58)
> Shared a As New Regex(" ") '

> Dim collection As MatchCollection = a.Matches

で解決できました。

ありがとうございます!!
解決済み
引用返信 編集キー/
■60231 / inTopicNo.12)  Re[9]: 正規表現
□投稿者/ 逆運の覇者 (14回)-(2011/06/23(Thu) 11:28:55)
> 複数行に対応していませんか?
Microsoftのサイトに.について、「改行以外」とあったので大丈夫です。



おおさんの質問は適当すぎです。
[緊急]とタイトルに入れる割には、情報の小出し、後出しに近いことをする。
スマートじゃない。
引用返信 編集キー/
■60232 / inTopicNo.13)  Re[10]: 正規表現
□投稿者/ shu (802回)-(2011/06/23(Thu) 12:15:53)
No60230 (おお さん) に返信
>>Shared a As New Regex(" ") '
>
>>Dim collection As MatchCollection = a.Matches
>
> で解決できました。
>
> ありがとうございます!!
なぜこれで解決出来たのでしょう?これだと空白1文字にしかマッチしないと思うのですが。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -