在perl中使用变量作为正则表达式修饰符[重复]

Posted

技术标签:

【中文标题】在perl中使用变量作为正则表达式修饰符[重复]【英文标题】:Use variable as a regex modifier in perl [duplicate] 【发布时间】:2015-01-01 11:37:39 【问题描述】:

寻找一种从 perl 变量传递修饰符的方法。例如

sub isContentValid

   my $modifier = shift;
   my $validationRe = shift;

   $modifier = ($modifier) ? "" : "i";
   $isValid = $ans =~ /$validationRe/$modifier;
   return $isValid;

【问题讨论】:

【参考方案1】:

您可以在inside正则表达式中使用修饰符。

man perlre

修饰符“/imsxadlup”也可以使用“(?...)”构造嵌入到正则表达式本身中,请参阅下面的“扩展模式”。

sub isContentValid

   my $modifier = shift;
   my $validationRe = shift;

   $modifier = ($modifier) ? "-i" : "i";
   $isValid = $ans =~ /(?$modifier)$validationRe/;
   return $isValid;

【讨论】:

以上是关于在perl中使用变量作为正则表达式修饰符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

是否有 Python 等效于正则表达式的 Perl "/x" 修饰符?

正则表达式中的模式修饰符

PHP正则表达式基本函数

我在字符串上有几个 preg_replace 未知修饰符警告,但我不知道正则表达式修复 [重复]

Perl正则表达式选项存储在变量中[重复]

你如何评论 Perl 正则表达式?