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 > <use-livecode@lists.runrev.com> 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 > br...@milby7.com <mailto:br...@milby7.com> > >> On Jan 24, 2024, at 3:35 PM, Craig Newman via use-livecode >> <use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> 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 >>> <use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> >>> 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 < >>>> use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> >>>> 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 < >>>> use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> >>>> 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 < >>>> use-livecode@lists.runrev.com> wrote: >>>>>> >>>>>> The only other two that would cause issues are ? and * which are single >>>> and multiple char wildcards respectively. >>>>>> >>>>>> Brian Milby >>>>>> br...@milby7.com >>>>>> >>>>>>> On Jan 24, 2024, at 10:21 AM, Craig Newman via use-livecode < >>>> use-livecode@lists.runrev.com> 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 < >>>> use-livecode@lists.runrev.com> 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 >>>>>>>> br...@milby7.com >>>>>>>> >>>>>>>>>> On Jan 23, 2024, at 9:02 PM, Neville Smythe via use-livecode < >>>> use-livecode@lists.runrev.com> 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 >>>>>>>>> use-livecode@lists.runrev.com >>>>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> use-livecode mailing list >>>>>>>> use-livecode@lists.runrev.com >>>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> use-livecode mailing list >>>>>>> use-livecode@lists.runrev.com >>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>> >>>>>> _______________________________________________ >>>>>> use-livecode mailing list >>>>>> use-livecode@lists.runrev.com >>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>> >>>>> >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode@lists.runrev.com >>>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com> > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode