Ole*_*leg 5 regex matlab bloomberg
彭博期货的股票代码通常如下:
MCDZ3 Curcny
Run Code Online (Sandbox Code Playgroud)
根是MCD,月份字母和年份是Z3,而"黄键"是Curcny.
请注意,根可以是可变长度,2-4个字母或1个字母和1个空格(例如S H4 Comdty).在信中,一年只允许在下面列出的字母expr,可以有两位数年.最后,黄色键可以是几个安全类型字符串之一,但我(Curncy|Equity|Index|Comdty)只对它感兴趣.
在Matlab中,我有以下正则表达式
expr = '[FGHJKMNQUVXZ]\d{1,2} ';
[rootyk, monthyear] = regexpi(bbergtickers, expr,'split','match','once');
Run Code Online (Sandbox Code Playgroud)
哪里
rootyk{:}
ans =
'mcd' 'curncy'
Run Code Online (Sandbox Code Playgroud)
和
monthyear =
'z3 '
Run Code Online (Sandbox Code Playgroud)
我不想在月中匹配''(空格).我能怎么做?
假设根中没有前导或尾随空格且只有大写字母,则这应该有效:
^([A-Z]{2,4}|[A-Z]\s)([FGHJKMNQUVXZ]\d{1,2}) (Curncy|Equity|Index|Comdty)$
Run Code Online (Sandbox Code Playgroud)
你在第一组中找到了根音,在第二组中找到了字母年份,在第三组中找到了黄键。
我不知道 Matlab 也不知道它是否涵盖 Perl 兼容正则表达式。如果失败,请尝试使用例如代替\s。另外,^...$如果您想从更大的源文本中提取内容,请删除 。