regex - MATLAB 中的多个捕获组

标签 regex matlab

我有一个带有数字或字母的字符串 a , 可能后跟 rl .

在 MATLAB 中,以下正则表达式返回为

>> regexp('10r', '([0-9]*|a)(l|r)*', 'match')
ans = 
    '10r'

我希望 10r分开,因为我有两个捕获组。有没有办法获得两个独立返回的元胞数组?我在文档中看不到它。

最佳答案

你想要“ token ”而不是“匹配”

>> toks = regexp('10r', '([0-9]*|a)(l|r)*', 'tokens');
>> toks{1}
ans = 
    '10'    'r'

或者,如果您想花哨一些,请命名标记并获取结构数组:
>> toks = regexp('10r', '(?<number>[0-9]*|a)(?<letter>l|r)*', 'names');
>> toks
toks = 
    number: '10'
    letter: 'r'

关于regex - MATLAB 中的多个捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574369/

相关文章:

matlab - 在 MATLAB 中查找量化层数

regex - 删除 key :value pair from json file using shell script

javascript - 将字符串 ">number<"转换为 "><a href="tel :number">number</a><"

android - 字符串末尾的正则表达式替换在 Android 版 Kotlin 中不起作用

matlab - Matlab 中元胞数组的子字符串

MATLAB:2个向量中所有索引的快速相关计算

php - 正则表达式确保字符串仅包含管道、数字和/或逗号,

java - 如何删除 Java 文件中单词的特定结尾?

arrays - 用Matlab快速获得满足条件的矩阵部分

matlab - 如何在 MATLAB 中为 ax+by-c 画一条线?