[[20250629114058]] 『UBound(Split(.Pattern, 』(jahakas) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『UBound(Split(.Pattern, 』(jahakas)

    With CreateObject("VBScript.RegExp")
        .Global = True
        .IgnoreCase = True

        .Pattern = "([A-Za-z]+)(\d+)"

        MsgBox UBound(Split(.Pattern, "("))

        S = "Abc123DEFGH4567ijkl890xxx000y999"

        For Each m In .Execute(S)
            With m
                MsgBox "SubMatches数= " & .SubMatches.Count;
            end with
        next
    end with

このマクロで確認すると、UBound(Split(.Pattern, "("))と.SubMatches.Countは同じになると思うのですが、
一般的にそう考えていいんでしょうか?
同じにならない場合は、どんなケースがあるんでしょうか?

< 使用 Excel:unknown、使用 OS:Windows11 >


 いいんじゃないかと思います。
 ・入れ子にした場合は、まさにカッコの位置が左にあるものから順に対応づけられますし、
 ・ | を含む場合、マッチしない方にはEmptyを値とするものが作られますから。

 まあ、そのSPLIT式では、"("自体にマッチする \( もカウントされてしまい不一致になりますけどね。(just a joke)
(xyz) 2025/06/29(日) 13:25:24

 なにも反応がないのは残念です。

 これだけだとナンなので、追記しておきます。
 意図したカッコの使い方と違うかもしれませんが、次のような使い方もあるので、
 チェックしておかれると良いかも知れません。
   (?= )肯定先読み
   (?! ) 否定先読み
   (?: ) 記憶せず

(xyz) 2025/07/02(水) 15:44:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.