拆分交替字符串编号外观
Split alternating string number appearence
抱歉我的问题,我是正则表达式的新手,我正在寻找一种巧妙的方法将这种模式 A007B001C017D021E041
的字符串拆分为 A
、007
、B
、001
、C
、017
、D
、021
、E
、041
。换句话说,输入是 [string][threeDigits]
重复五次的模式,输出是每次重复的分隔 [string]
,[threeDigits]
。您能否使用 matlab 内置函数的正则表达式给出建议?
谢谢。
基于 python 的正则表达式解决方案如下所示 - 不知道 matlab 是否支持相同的正则表达式语法:
$ echo A007B001C017D021E041 | sub '([A-Z])+([0-9]+)' ', , '
A, 007, B, 001, C, 017, D, 021, E, 041,
我将 sub
定义为这样的别名:
alias sub='python -c "import sys, re; regex=re.compile(sys.argv[1]); [ sys.stdout.write(regex.sub(sys.argv[2], line)) for line in sys.stdin ]"'
可能的解决方案:
tokens = regexp(str, '([a-zA-z])(\d\d\d)', 'tokens');
array = [tokens{:}];
抱歉我的问题,我是正则表达式的新手,我正在寻找一种巧妙的方法将这种模式 A007B001C017D021E041
的字符串拆分为 A
、007
、B
、001
、C
、017
、D
、021
、E
、041
。换句话说,输入是 [string][threeDigits]
重复五次的模式,输出是每次重复的分隔 [string]
,[threeDigits]
。您能否使用 matlab 内置函数的正则表达式给出建议?
谢谢。
基于 python 的正则表达式解决方案如下所示 - 不知道 matlab 是否支持相同的正则表达式语法:
$ echo A007B001C017D021E041 | sub '([A-Z])+([0-9]+)' ', , '
A, 007, B, 001, C, 017, D, 021, E, 041,
我将 sub
定义为这样的别名:
alias sub='python -c "import sys, re; regex=re.compile(sys.argv[1]); [ sys.stdout.write(regex.sub(sys.argv[2], line)) for line in sys.stdin ]"'
可能的解决方案:
tokens = regexp(str, '([a-zA-z])(\d\d\d)', 'tokens');
array = [tokens{:}];