Re: Regular expression string searching & matching

Ben Hanson <jamin.hanson@googlemail.com>
Sun, 11 Mar 2018 13:52:53 -0700 (PDT)

          From comp.compilers

Related articles
Regular expression string searching & matching clint.olsen@gmail.com (Clint O) (2018-03-04)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-07)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-07)
Re: Regular expression string searching & matching clint.olsen@gmail.com (Clint O) (2018-03-08)
Re: Regular expression string searching & matching clint.olsen@gmail.com (Clint O) (2018-03-10)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-10)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-11)
Re: Regular expression string searching & matching clint.olsen@gmail.com (Clint O) (2018-03-12)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-12)
Re: Regular expression string searching & matching DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2018-03-13)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-13)
Re: Regular expression string searching & matching jamin.hanson@googlemail.com (Ben Hanson) (2018-03-13)
Re: Regular expression string searching & matching clint.olsen@gmail.com (Clint O) (2018-03-17)
[3 later articles]
| List of all articles for this month |

From: Ben Hanson <jamin.hanson@googlemail.com>
Newsgroups: comp.compilers
Date: Sun, 11 Mar 2018 13:52:53 -0700 (PDT)
Organization: Compilers Central
References: 18-03-016 18-03-032 18-03-034 18-03-035
Injection-Date: Sun, 11 Mar 2018 20:52:53 +0000
Keywords: lex, comment

> /This/ actually worked for me (one character change):
>
> [/][*]([^*]|[*]+[^/])*[*]+[/]


Your modified regex produces the following state machine:


State: 0
    [/] -> 1


State: 1
    [*] -> 2


State: 2
    [^*] -> 2
    [*] -> 3


State: 3
    [^*/] -> 2
    [*] -> 4
    [/] -> 5


State: 4
    [^*/] -> 2
    [*] -> 4
    [/] -> 6


State: 5
    END STATE


State: 6
    END STATE
    [^*] -> 2
    [*] -> 3


Which will match


/***/a*/


in its entirety, when if should only match


/***/


Regards,


Ben
[Doesn't that depend on whether you interpret the END STATE in state 6 to stop even
if there's more input? -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.