我想分割一个Simulink
路径,如下所示:"a/b/c//d"
。它应该分成[a,b,c/d]
。正则表达式怎么样?
谢谢和问候
答案 0 :(得分:0)
这应该可以解决问题:
>> strrep(regexp('a/b/c//d', '(([^/]|//)*)(?=/[^/]|$)', 'match'), '//', '/')
ans =
'a' 'b' 'c/d'
正则表达式可以理解如下:第一部分匹配任何非斜杠([^/]
)或双斜杠,给出([^/]|//)
部分。我们需要任意数量的那些,所以我们需要一个*
,然后是斜线 - 然后是斜线或字符串的结尾(/[^/]|$
)。我们使用前瞻操作符(?= ... )
来做到这一点。
strrep是在结果中将//
替换为/
。也许这可以在regexp
的同一次调用中完成,但它已经足够复杂了我的口味。