- - PR -
正規表現 否定の先読み?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-19 19:25
カッコ【】で囲まれた部分を取得したいのですが、
カッコの中が全て全角の算用数字〜*の時はマッチしない、 という正規表現が分かりません。 【A12】【123A45】などはマッチさせたいが、 【12345】【1〜3*5】などはさせたくない、ということです。 Dim text As String = "【123A45】" Dim pattern As String = "【(?![\d〜*]+)\w+】" Dim m As Match = Regex.Match(text, pattern) MessageBox.Show(m.Success.ToString) などとしてみたのですが、これではFalseになってしまいます。 (【A123】など、一文字目に算用数字〜*以外が来た時だけはTrueになりますが) ご教授よろしくお願いします。 [ メッセージ編集済み 編集者: hei 編集日時 2006-12-19 19:29 ] [ メッセージ編集済み 編集者: hei 編集日時 2006-12-19 19:35 ] |
|
投稿日時: 2006-12-19 20:14
「全角の算用数字、〜、*」ではない文字が一つ以上含まれるということですね。
つまり、「全角の算用数字、〜、*」ではない文字の前後に、0個以上の任意の文字が存在するということになりますので、以下のようにすればOKだと思います。 【.*[^0-9〜*].*】 # "全角の"算用数字ですよね? # 読みづらかったのと抜けてる所があったので一部編集 [ メッセージ編集済み 編集者: よこけん 編集日時 2006-12-19 20:20 ] |
|
投稿日時: 2006-12-19 20:26
すみません、正規表現を一部下記間違えていました。
【.*[^0-9〜*].*】 ではなく、 【.*[^0-9〜*].*】 でした。 ( 全角*と半角*の書き間違えです^^; ) |
|
投稿日時: 2006-12-19 22:36
できました!
考え方もとても参考になりました。 ありがとうございました! |
1