我有一个包含数字或字母的字符串a,可能后跟r或l。
在MATLAB中,以下正则表达式返回为
>> regexp('10r', '([0-9]*|a)(l|r)*', 'match')
ans =
'10r'
Run Code Online (Sandbox Code Playgroud)
我期望10并r单独进行,因为我有两个捕获组。有没有办法让单元格数组都独立返回?我在文档中看不到它。
您想要“令牌”而不是“匹配”
>> toks = regexp('10r', '([0-9]*|a)(l|r)*', 'tokens');
>> toks{1}
ans =
'10' 'r'
Run Code Online (Sandbox Code Playgroud)
或者,如果您想花哨的话,请为令牌命名并获取一个struct数组:
>> toks = regexp('10r', '(?<number>[0-9]*|a)(?<letter>l|r)*', 'names');
>> toks
toks =
number: '10'
letter: 'r'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2299 次 |
| 最近记录: |