Simulink次のようなパスを分割したいと思います"a/b/c//d"。に分割する必要があり[a,b,c/d]ます。正規表現はどのようになりますか?
ありがとう、よろしく
これでうまくいくはずです:
>> strrep(regexp('a/b/c//d', '(([^/]|//)*)(?=/[^/]|$)', 'match'), '//', '/')
ans =
'a' 'b' 'c/d'
正規表現は、次のように理解できます。最初の部分は、スラッシュでないもの ( [^/]) または二重スラッシュに一致し、ピース([^/]|//). それらはいくつでも必要なので、 が必要で*、その後にスラッシュの後にスラッシュではないか、文字列の末尾 ( /[^/]|$) が続きます。先読み演算子(?= ... )do を使用してそれを行います。
strrep は、結果の//withに置き換えられます。/おそらくそれは への同じ呼び出しで行うことができますがregexp、私の好みではすでに十分に複雑です。