OK I see, thanks Gil.
I think the main problem is I don't know much about regex.
I will re-learn them this day.

On 2018/7/12 星期四 PM 10:02, Gil Magno wrote:
2018-07-12 20:50:22 +0800 Lauren C.:
thanks for the kind helps.
do you know what the expression in { } stands for?

^(\S+) - - \[(\S+).*\] \"GET (.*?/)\s+

Hi, Lauren

This is quickly explained in 
http://perldoc.perl.org/perlrequick.html#Using-character-classes

\s (lowercase) stands for a "whitespace". \S (uppercase) stands for the 
opposite of \s. So

$name = "lauren";
if ($name =~ m{\s}) { print 'it matched' }

This will not match, because there's no "whitespace" in the string. But this

$name = "lauren";
if ($name =~ m{\S}) { print 'it matched' }

will match, because in the string there is a character which is *not* 
"whitespace".

For the ^ [] and .*? in the regex, those pages I the previous email help you.

Best

gil

On 2018/7/12 星期四 PM 8:37, Илья Рассадин wrote:
"m{ pattern }" is regular expression to parse log string.

It's equal to just "/ pattern /". Using different delimiter is convenient
here because usually symbol "/" must be escaped with backslash "\", but if
we use another delimiter - we can left "/" symbol unescaped and reges is
more readable.

You can further explore regex with this site https://regex101.com/r/4CGCcB/2

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to