Perl 正则表达式中的’ee’修改器
在Perl中,正则表达式可以通过使用合适的操作符对给定的字符串进行各种操作。这些操作符可以执行诸如修改字符串、替换其他子字符串等操作。使用’s'(substitution)操作符可以替换给定字符串中的一个子串,它需要两个操作数,一个是要替换的子串,另一个是替换的字符串。
Perl中的修饰符是用正则表达式来匹配一个具有特定模式的字符串。Perl中的’ee’修饰符与’/e’修饰符类似。它用于评估右侧的字符串,然后进一步评估结果。它基本上是Perl中的双 “eval “运算符。’\e’运算符用于评估右侧的字符串。’\ee’是它的下一个步骤。它将’\e’运算符应用于已经应用了’\e’的字符串上。
就像’e’修饰符一样,’ee’修饰符也可以和’g'(global)修饰符一起使用,对给定字符串中所有可能的子字符串进行修改。
例子
输出。
在上面的代码中,var的值并将其打印出来。
如果我们在上面的代码中使用’e’修饰符,那么得到的字符串将与原始字符串相同。
输出。
这是因为当使用’e’修饰符时,regex将认为RHS是被评估的字符串,它将被用作替换,这里的RHS是1美元,持有var。
在数学运算中使用’ee’修饰符
如果有一个数学表达式存储在一个字符串中,那么在打印字符串时,它的值不会被评估,而是按原样打印。这是因为它被看作是一个字符串和一个要被评估的表达式。
例子
输出。
在上面的代码中,表达式在Regex中使用 '
\d+’操作符写一个或多个数字, [+*/-]
字符类为操作符符号,然后再次用 '
\d+’写数字。ee’修饰符对字符串进行评估,并返回表达式的总和,然后使用1美元运算符打印出来。
以上的regex也可以存储在一个子程序中,以评估各种其他表达式,而不需要重写regex。
例子
输出。
在上面的代码中,一个单一的regex可以使用子程序来进行四种数学运算。