Regarding Grouping Operators the function, regexp, doesn't behave the way I expected.
>> cac = regexp( 'ABC', '((A)(B(C)))', 'tokens' );>> cac{1}(:)ans = 1×1 cell array {'ABC'}
regexp returns one token without any protests regarding my parentheses. I expected four: 'ABC', 'A', 'BC' and 'C'. The reason I expected that is because most other flavors of regular expressions would have returned four tokens. Java: Capturing Groups would
In the expression ((A)(B(C))), for example, there are four such groups:
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
Another couple of examples
>> cac = regexp( 'ABC', '(A)(B(C))', 'tokens' );>> cac{1}(:)ans = 2×1 cell array {'A' } {'BC'} >> cac = regexprep( 'ABC', '((A)(B(C)))', ' --- $1 ---' )cac = ' --- ABC ---'>> cac = regexprep( 'ABC', '((A)(B(C)))', ' --- $2 ---' )cac = ' --- $2 ---'
The documentation on Grouping Operators is terse and there are only few examples. I've found nothing on "groups inside groups".
Question:
Are nesting of group operators supported or am I a victim of wishful thinking?
Best Answer