- - PR -
正規表現
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-13 11:16
10進数が含まれている場合は、初めて出てくる連続した10進数までにマッチし、
含まれていない場合は全ての文字列にマッチする 正規表現はどのように書けばいいのでしょうか? Dim rx As New Regex("\w+\d+") として Debug.Print(rx.Match("あいうえお123かきくけこ").Value) では「あいうえお123」がマッチしますが、 Debug.Print(rx.Match("あいうえお").Value) では「あいうえお」を取得したいのにマッチしません。 パターンを「\w+\d*」に変えると 下の例では「あいうえお」が取得できますが、 上の例では余分な「かきくけこ」までもマッチしてしまいます。 始めに示したパターン Dim rx As New Regex("\w+\d+") で、 Dim m as Match=rx.Match(value) if m.Success then’マッチしたときのみ値を変更する value=m.value end if のように分岐処理すればできるのですが、 正規表現だけでできる方法はないかと思いました。 よろしくお願いします。 |
|
投稿日時: 2006-11-13 11:44
^[^0-9]*[0-9]*
[ メッセージ編集済み 編集者: 明智重蔵 編集日時 2006-11-13 12:05 ] |
|
投稿日時: 2006-11-13 17:14
明智さん、できました。
日本語環境の「\d」は全角の数字もマッチするようで少し迷いましたが、 とても参考になりました。 ありがとうございました。 |
1