|
假设我有一个文本文件,它通过使用符号分隔数据库列来充当简单的数据库:
|some text| 234| other field| bla| 1232|
我想构造一个正则表达式
- 检查每行中有多少个字段(通过计算
|
符号的出现) - 检查哪些字段是空的(两个
|
符号之间没有文本) - 将返回每个字段值
- 将从字段值周围去除空白。但要小心,空字段不应该被剥离!
这里有两个例子来说明我想要什么:
line = |some text| 234| other field| bla| 1232|
output = my_regexp(line)
disp(output)
'some text', '234', 'other field', 'bla', '1232'
现在相同,但这次字段 3 为空:
line2 = |some text| 234| | bla| 1232|
output = my_regexp(line)
disp(output)
'some text', '234', '', 'bla', '1232'
我试过以下
values = regexp(regexprep(line '[\s]', ''), '\|', 'split')
但不幸的是,这个解决方案没有
- 检查有多少
|
存在 - 不保留返回值的字段顺序,因为空字段被忽略
- 告诉我哪个字段是空的
我从未构建过复杂的正则表达式规则,感谢您的意见!