Brian. So the inclusion of “[“ would have matched nothing in the original string ""aaa[bbb””? That is, even though the bracketed string was not “closed” with “]”, did it try to find a string that began with “b”, failed, and therefore returned the original string untouched?
Craig > On Jan 24, 2024, at 4:37 PM, Brian Milby via use-livecode > <[email protected]> wrote: > > I just want to clarify that this isn’t the regex version of filter but the > wildcard pattern version. It is much less complicated than regex. Square > brackets are used to group characters to be matched so you can use [abc]* to > match any item that starts with a, b, or c. The dictionary entry for this is > pretty good. > > Brian Milby > [email protected] <mailto:[email protected]> > >> On Jan 24, 2024, at 3:35 PM, Craig Newman via use-livecode >> <[email protected] <mailto:[email protected]>> wrote: >> >> Brian. >> >> The original post tried to filter a string by filtering (without) that >> actual string, and was interested in why that did not yield empty. >> Intuitively, the result of such a filter operation ought always to be empty. >> The presence of the char “[“ is the “culprit”. That is as far as I took it. >> >> Anyway, you state that the char “[“ is a regex special character, which >> explains a lot. The other two, “?” and “*” filter without issue, though, and >> I guess one has to be a regex user to see why. >> >> I am not. >> >> Craig >> >>> On Jan 24, 2024, at 2:53 PM, Brian Milby via use-livecode >>> <[email protected] <mailto:[email protected]>> >>> wrote: >>> >>> Your test misses the actual issue: >>> >>> on mouseup >>> local tStr >>> local tFilter >>> put "a*b" into tFilter >>> put "anything bold" into tStr >>> filter tStr with tFilter >>> put tStr >>> end mouseup >>> >>> Will yield "anything bold" >>> >>> while using the following 2 lines: >>> put "a?b" into tFilter >>> put "a*b" into tStr >>> will yield "a*b" >>> >>> Finally, using the following 2 lines: >>> put "a[?]b" into tFilter >>> put "a?b" into tStr >>> will yield "a?b" >>> >>> The point is that you can end up with issues if you are counting on "*" and >>> "?" to filter literally. They don't - they are wildcards and can match >>> anything (multiple char or single char respectively). The "[" is also >>> special. >>> >>> To ensure that your filters work properly if you do not want to use any >>> wildcards (i.e. match * and ? literally) would require you to change *, ?, >>> and [ to [*], [?], and [[]. >>> >>>> On Wed, Jan 24, 2024 at 1:19 PM Craig Newman via use-livecode < >>>> [email protected] <mailto:[email protected]>> >>>> wrote: >>>> >>>> OK, instead of working I did this: >>>> >>>> on mouseUp >>>> >>>> repeat with y = 1 to 255 >>>> >>>> put "XX" & numToChar(y) & "XX" into temp >>>> >>>> filter temp without temp >>>> >>>> if temp <> "" then put y & return after accum >>>> >>>> end repeat >>>> >>>> answer accum >>>> >>>> end mouseUp >>>> >>>> There are two characters that prevent the filter command from doing its >>>> job: ASCII 91 (“[“) and ASCII 10, the return char. >>>> >>>> >>>> >>>> Craig >>>> >>>> >>>>> On Jan 24, 2024, at 12:51 PM, Craig Newman via use-livecode < >>>> [email protected] <mailto:[email protected]>> >>>> wrote: >>>>> >>>>> Brian. >>>>> >>>>> Nope. Those two chars pass through the filter, er, filtered. >>>>> >>>>> Again, I did not test the entire character set. >>>>> >>>>> Craig >>>>> >>>>>> On Jan 24, 2024, at 11:05 AM, Brian Milby via use-livecode < >>>> [email protected]> wrote: >>>>>> >>>>>> The only other two that would cause issues are ? and * which are single >>>> and multiple char wildcards respectively. >>>>>> >>>>>> Brian Milby >>>>>> [email protected] >>>>>> >>>>>>> On Jan 24, 2024, at 10:21 AM, Craig Newman via use-livecode < >>>> [email protected]> wrote: >>>>>>> >>>>>>> I did not test the ASCII set exhaustively, but the culprit is the >>>> char “[“ (ASCII 91). Any other char (including “]”) in the string works >>>> correctly, that is, nothing is left after the filter command executes. >>>>>>> >>>>>>> I do not know enough to say whether that particular char does >>>> something to the filter command, which may use regex somehow in its inner >>>> workings. >>>>>>> >>>>>>> Craig >>>>>>> >>>>>>> Craig >>>>>>> >>>>>>>> On Jan 23, 2024, at 9:45 PM, Brian Milby via use-livecode < >>>> [email protected]> wrote: >>>>>>>> >>>>>>>> Not sure this is really a bug. The default is to match a >>>> wildcardPattern. If you want to match [ then you must use [[] in the >>>> pattern. >>>>>>>> >>>>>>>> Brian Milby >>>>>>>> [email protected] >>>>>>>> >>>>>>>>>> On Jan 23, 2024, at 9:02 PM, Neville Smythe via use-livecode < >>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>> Try this in the msg box: >>>>>>>>> >>>>>>>>> put "aaa[bbb" into tStr; put line 1 of tStr into tLine; filter tStr >>>> without tLine; put tStr >>>>>>>>> I get (using MacOS, LC 9.6.11) >>>>>>>>> >>>>>>>>> aaa[bbb >>>>>>>>> >>>>>>>>> That is to say, the line is not filtered out. >>>>>>>>> >>>>>>>>> And: >>>>>>>>> >>>>>>>>> put "aaa[bbb" into tStr; filter tStr with tStr; put tStr >>>>>>>>> >>>>>>>>> produces an empty string instead of the original string. >>>>>>>>> >>>>>>>>> The bug occurs if the line contains the character “[“ anywhere; any >>>> lines containing that character are ignored by both filter with and filter >>>> without. >>>>>>>>> >>>>>>>>> This is really serious, because I rely on the filter command a lot, >>>> as I would think do many other developers! >>>>>>>>> >>>>>>>>> Don’t know if it occurs with other characters, but I have never seen >>>> it before. I discovered it when filtering lines with regular expressions. >>>> Other special regexp characters I have tested do not trigger the bug. >>>>>>>>> >>>>>>>>> Neville Smythe >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> use-livecode mailing list >>>>>>>>> [email protected] >>>>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> use-livecode mailing list >>>>>>>> [email protected] >>>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> use-livecode mailing list >>>>>>> [email protected] >>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>> >>>>>> _______________________________________________ >>>>>> use-livecode mailing list >>>>>> [email protected] >>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>> >>>>> >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> [email protected] >>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> [email protected] >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>> _______________________________________________ >>> use-livecode mailing list >>> [email protected] >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> >> _______________________________________________ >> use-livecode mailing list >> [email protected] >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > [email protected] <mailto:[email protected]> > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
