我正在尝试将下面的表达式列表转换为它们的perl正则表达式等价物。在字符串中搜索该模式。 在下面的表达式中,VARNAME是动态的。它可以是任何单词值。
EXPRESSION PERL REGULAR EXPRESSION
__________________ _________________________
^TM1()^
^TM2()^
^TM3()^
^f(‘VARNAME’)^ ---------------- /\^f\(‘(\w*?)’\)\^/
^f(‘VARNAME’).get()==’#’^
^f(‘VARNAME’)==’#’^
^f(‘VARNAME’).any(‘#’)^
^f(‘VARNAME’).toNumber()^
^f(‘VARNAME’).toString()^
^f(‘VARNAME’).toString().toLowerCase()^
^f(‘VARNAME’).toString().toUpperCase()^
^f(‘IFCONDITION’)?’THENTEXT’:’ELSETEXT’^
<br>
<br/>
<br />
^MobileHeader()^
^MobileFooter()^
<u>
</u>
答案 0 :(得分:3)
while (<DATA>) {
chomp;
print quotemeta($_), "\n"; # or: print "\Q$_\E\n";
}
__DATA__
^TM1()^
^TM2()^
^TM3()^
^f(‘VARNAME’)^
^f(‘VARNAME’).get()==’#’^
^f(‘VARNAME’)==’#’^
^f(‘VARNAME’).any(‘#’)^
^f(‘VARNAME’).toNumber()^
^f(‘VARNAME’).toString()^
^f(‘VARNAME’).toString().toLowerCase()^
^f(‘VARNAME’).toString().toUpperCase()^
^f(‘IFCONDITION’)?’THENTEXT’:’ELSETEXT’^
<br>
<br/>
<br />
^MobileHeader()^
^MobileFooter()^
<u>
</u>
答案 1 :(得分:0)
你可以简单地“或”全部,根据需要逃脱。您可以使用'?'来缩短它。
这不是一个干净或优雅的解决方案,但我想它可以很好地用于您的目的。