Hi!

I think, m{path/(\w+)?/?$} regex can solve your problem.

In general, to parse URL, you can use official regex from rfc3986 (see Appendix B for rfc3986)

regex is

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
$2 is protocol
$4 is host
$5 is path
$7 is query
$9 is fragment.

Another approach is to use some of cpan modules to parse URI.

For example, https://metacpan.org/pod/URI


On 7/17/18 2:56 PM, Lauren C. wrote:
Hello,

I want to match:

/path/
/path/123
/path/abc

but /path/?xxx  should not be matched.

This works:

$ perl -le '$x="/path/abc"; print 1 if $x=~m{path/\w+}'
1


this works too:

$ perl -le '$x="/path/?abc"; print 1 if $x=~m{path/\w+}'


But it doesn't work for this case:

$ perl -le '$x="/path/"; print 1 if $x=~m{path/\w+}'

it expects 1 returned.

Can you help? thanks.

Reply via email to