更改 Perl 中的默认正则表达式行为?

Posted

技术标签:

【中文标题】更改 Perl 中的默认正则表达式行为?【英文标题】:Change default regexp behavior in Perl? 【发布时间】:2016-07-05 19:15:23 【问题描述】:

Perl 中是否有一些可用的全局选项指定默认行为正则表达式匹配行为?就像默认情况下忽略大小写一样,即使没有 i 选项匹配运算符。

【问题讨论】:

为什么需要这样做?在全局更​​改某些人认为他们知道它是如何工作的东西时,肯定有可能存在蠕虫。 【参考方案1】:

您可能正在寻找re pragma

use re '/ix';  
"FOO" =~ / foo /; # /ix implied  
no re '/x';  
"FOO" =~ /foo/;   # just /i implied

【讨论】:

请注意,这不是全局的,仅适用于当前的词法范围。全局标志不是个好主意,因为模块(包括 strict 之类的东西)依赖于区分大小写的匹配。 还有更多含义和细节。 (例如:re /flag 覆盖 locale 杂注和 'unicode_strings' feature 用于正则表达式 - 在no re /flag 之后全部恢复。)

以上是关于更改 Perl 中的默认正则表达式行为?的主要内容,如果未能解决你的问题,请参考以下文章

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

perl学习正则表达式处理文本

正则表达式中的 perl 正则表达式

Perl语言中的正则表达式及其使用

Perl正则表达式引用

Perl教程 - 正则表达式