【发布时间】:2014-02-07 05:53:25
【问题描述】:
我真的很难在这上面贴上标签,这可能是我无法通过搜索找到所需内容的原因。
我希望匹配以下内容:
- 自动回复
- 自动回复
- 自动回复
我使用的平台不允许指定不区分大小写的搜索。我尝试了以下正则表达式:
.*[aA]uto(?:matic)[ ]*[rR]eply.*
认为(?:matic) 会导致我的表达式匹配Auto 或Automatic。但是,它只匹配Automatic。
- 我做错了什么?
- 这里的正确术语是什么?
这是使用 Perl 的正则表达式引擎(我认为是 PCRE,但我不确定)。
【问题讨论】:
-
如果这是一个Perl正则表达式,你不需要
.*在开始和结束,因为默认是一个正则表达式可以匹配字符串的任何部分,不需要匹配所有的.您可以使用(?^i: ... )扩展模式向正则表达式添加修饰符。 -
@TLP 我会试试看。我所拥有的只是 OTRS 中 Web 表单上的一个输入字段,它允许我指定一个正则表达式。我还没有深入研究源代码以查看它对输入的作用,但您所说的可能会正常工作。谢谢。
-
perl!=PCRE, Check the difference。另外,您的平台如何不允许不区分大小写?您是否尝试过在您的正则表达式中设置i修饰符,例如(?i)auto(?:matic)?\s*reply? -
仅供参考,PCRE 和 Perl 正则表达式引擎是不同的,但大多是兼容的正则表达式系统。现代 Perl 甚至支持可插入的正则表达式引擎。请参阅pcre.org 和perldoc.perl.org/perlre.html 了解更多信息。
-
感谢您的信息。我正在使用 OTRS,它提供了一个用于提交正则表达式的网络表单。我不确定在那里之后它会做什么。我知道 OTRS 是用 Perl 编写的。我发现关于正在使用哪种类型的正则表达式引擎,或者在输入值后它对值做了什么的文档为零。