in reply to Pattern matching
Above could not possibly "print[s] the whole line" for "MODULE " will be missing. As you are capturing any- & everything after "MODULE " with "(.*)", so you would get "C17 (N...)" string. Capture what you actually want.
Surely there must be some other patterns besides one specific case? What are they?
In this specific case, try ...
m{ \b (MODULE \s+ [A-Z]+[0-9]+) \s* [(] .+? [)] }x
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Pattern matching
by nursyza (Novice) on Nov 10, 2018 at 09:17 UTC | |
Thank you. And btw can you explain to me how to read the patterns you wrote? | [reply] |
by parv (Parson) on Nov 10, 2018 at 09:35 UTC | |
| [reply] [d/l] |
by AnomalousMonk (Archbishop) on Nov 10, 2018 at 23:50 UTC | |
... can you explain to me how to read the patterns ... Because parv's regex contains nothing that is not supported by Perl version 5.6, the YAPE::Regex::Explain module can help.
Give a man a fish: <%-{-{-{-< | [reply] [d/l] [select] |
by parv (Parson) on Nov 11, 2018 at 01:46 UTC | |
Thanks to you & kevbot for posting about YAPE::Regex::Explain. That was what I wanted to do too before posting my explanation. Read more... (Y::R::E install was too much work consuming too much time in order to avoid the work) (1177 Bytes)
In order to use the Y::R::E module installed in my own directory with system perl, I needed to set $PREL5LIB obviously. But ...
... was not enough. I had to add 2 more sub-directories ...
... why could perl not find the last two directory paths by itself in year 2018? (Yes, I am aware the virtues of installing, compiling my own perl. And I love that; had built multiple times on FreeBSD & CentOS.) | [reply] [d/l] [select] |
by kevbot (Vicar) on Nov 11, 2018 at 00:06 UTC | |
I see that parv already provided you with an explanation of the regex pattern for you. I wanted to let you know that you can use the YAPE::Regex::Explain module to provide an explanation of any regular expression pattern. Once you have the package installed you can do something like this at the command line to get the explanation for your pattern Read more... (4 kB)
You may also want to look at perlre to get more familiar with regular expressions. UPDATE: As parv, soonix, and AnomalousMonk pointed out (in the replies to this node), the above usage of YAPE::Regex::Explain is not correct. Passing the regex as a double-quoted string caused problems.
The following code gives the correct output Here is the output
| [reply] [d/l] [select] |
by parv (Parson) on Nov 11, 2018 at 01:53 UTC | |
The output of your Y::R::E is much different than the one provided by AnomalousMonk. Yours is missing word boundary (\b) & space characters (\s). Is that due to problem with copy-paste or your version of Y::R::E module? | [reply] |
by soonix (Canon) on Nov 11, 2018 at 21:18 UTC | |
by AnomalousMonk (Archbishop) on Nov 11, 2018 at 21:28 UTC | |
Re^2: Pattern matching
by nursyza (Novice) on Nov 10, 2018 at 09:14 UTC | |
It works now. Thank you! | [reply] |