Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: How do you use a variable value within a regular expression pattern properly? (updated)

by haukex (Canon)
on Sep 11, 2017 at 11:43 UTC ( #1199084=note: print w/replies, xml ) Need Help??


in reply to How do you use a variable value within a regular expression pattern properly?

As an alternative to what 1nickt showed, there's also the /x modifier that allows you to insert whitespace in your regex, which also improves readability:

if( $string=~/ ^ $myvar REC: (.*) /x )

Also, Mind the meta!, that means if your $myvar contains any characters like the dot (.) and you don't want these to be interpreted as regex special characters, or any whitespace in the variable to be ignored under /x, then you need to wrap your string in \Q...\E (see also quotemeta):

if( $string=~/ ^ \Q$myvar\E REC: (.*) /x )

Update: Added links to docs. Also added bit about whitespace in the variable under /x.

Update 2: Just to be clear, I recommend you always use \Q...\E, even if you don't use /x, unless you specifically want regex metacharacters in $myvar to be treated as such and it comes from a trusted source! That is, if($string=~/^\Q$myvar\EREC:(.*)/)

  • Comment on Re: How do you use a variable value within a regular expression pattern properly? (updated)
  • Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1199084]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2018-11-18 09:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My code is most likely broken because:
















    Results (205 votes). Check out past polls.

    Notices?