octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: strsplit


From: Juan Pablo Carbajal
Subject: Re: strsplit
Date: Fri, 6 Jun 2014 08:58:47 +0200

On Fri, Jun 6, 2014 at 2:13 AM, Ben Abbott <address@hidden> wrote:
> On Jun 5, 2014, at 8:04 PM, Juan Pablo Carbajal <address@hidden> wrote:
>
>> On Fri, Jun 6, 2014 at 2:01 AM, Mike Miller <address@hidden> wrote:
>>> On Fri, Jun 6, 2014 at 01:05:53 +0200, Juan Pablo Carbajal wrote:
>>>> Hi,
>>>>
>>>> Is the following behavior correct in strsplit?
>>>>
>>>> strsplit("/usr/local/share/octave/",filesep())
>>>> ans =
>>>> {
>>>>  [1,1] =
>>>>  [1,2] = usr
>>>>  [1,3] = local
>>>>  [1,4] = share
>>>>  [1,5] = octave
>>>>  [1,6] =
>>>> }
>>>>
>>>> strsplit("/usr/local/share/octave/",filesep(),true)
>>>> ans =
>>>> {
>>>>  [1,1] =
>>>>  [1,2] = usr
>>>>  [1,3] = local
>>>>  [1,4] = share
>>>>  [1,5] = octave
>>>>  [1,6] =
>>>> }
>>>>
>>>> strsplit("/usr/local/share/octave/",filesep(),false)
>>>> ans =
>>>> {
>>>>  [1,1] =
>>>>  [1,2] = usr
>>>>  [1,3] = local
>>>>  [1,4] = share
>>>>  [1,5] = octave
>>>>  [1,6] =
>>>> }
>>>>
>>>>
>>>> The output puts an empty cell element when the matching delimiter is
>>>> at the beginning and at the end.
>>>> This causes geometry ADD_PKG script to fail, so the behavior changed
>>>> not long ago (I remember some mails about this, ml compatibility?).
>>>
>>> I see the same behavior in 3.4.3, 3.6.4, and 3.8.1 for this example.
>>> See also the ostrsplit function in 3.8 which operates like the old
>>> strsplit.
>>>
>>> Anyway, according to bug #39010 [1], it looks like yes, a string that
>>> begins and ends with the delimiter should return an empty string from
>>> both ends.
>>>
>>> [1] https://savannah.gnu.org/bugs/?39010
>>>
>>> --
>>> mike
>>
>> Thank you fro the quick response and the tests.
>>
>> ok, I guess this is hereditary disease (or can anybody justify this 
>> behavior?).
>> If the behavior is so old I wonder how I wasn't getting the failure before.
>> Anyways I replaced the use of strsplit with fullfile, hopefully this
>> is more robust and portable.
>
> The commands in Matlab would be ...
>
>         strsplit('/usr/local/share/octave/',filesep())
>         
> strsplit('/usr/local/share/octave/',filesep(),'CollapseDelimiters',true)
>         
> strsplit('/usr/local/share/octave/',filesep(),'CollapseDelimiters',false)
>
> The third arg for Octave is being taken to be equivalent to Matlab's 
> "CollapseDelimiters" parameter.
>
> Perhaps Octave's third arg can be made equivalent to "IgnoreEmpties" instead 
> of "CollapseDelimiters"?
>
> In any event, the old version of strsplit() is still present, but was renamed.
>
>         ostrsplit('/usr/local/share/octave/',filesep(),true)
>         ans =
>         {
>                 [1,1] = usr
>                 [1,2] = local
>                 [1,3] = share
>                 [1,4] = octave
>         }
>
> Ben
>

Thank you Ben,
As far as I can see there is no mention of the parameter
"IgnoreEmpties" in the help of strsplit. Is this already implemented
or is it a missing feature?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]