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
、私の好みではすでに十分に複雑です。