0

Simulink次のようなパスを分割したいと思います"a/b/c//d"。に分割する必要があり[a,b,c/d]ます。正規表現はどのようになりますか?

ありがとう、よろしく

4

1 に答える 1

0

これでうまくいくはずです:

>> strrep(regexp('a/b/c//d', '(([^/]|//)*)(?=/[^/]|$)', 'match'), '//', '/')
ans = 
    'a'    'b'    'c/d'

正規表現は、次のように理解できます。最初の部分は、スラッシュでないもの ( [^/]) または二重スラッシュに一致し、ピース([^/]|//). それらはいくつでも必要なので、 が必要で*、その後にスラッシュの後にスラッシュではないか、文字列の末尾 ( /[^/]|$) が続きます。先読み演算子(?= ... )do を使用してそれを行います。

strrep は、結果の//withに置き換えられます。/おそらくそれは への同じ呼び出しで行うことができますがregexp、私の好みではすでに十分に複雑です。

于 2012-08-03T12:13:36.127 に答える