问题标签 [qr-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 我必须在 Perl 预编译的正则表达式中转义哪些字符?
我很难确定在使用 Perl 的 qr{} 构造时必须转义哪些字符
我正在尝试为包含无数通常转义字符(#*.>:[])并且还包含另一个预编译正则表达式的文本创建多行预编译正则表达式。此外,出于测试目的,我需要尽可能严格地匹配。
错误:
尝试转义星号会导致匹配失败(D'oh 输出)。试图逃避其他讨厌的字符也会导致匹配失败。我可以继续尝试不同的组合来逃避什么,但这里有很多变化,希望有人能提供一些见解。
regex - Perl qr// 和替换
我正在编写一个使用 Getops 接受用户输入的小程序,基于它,该程序将尝试将模式与某些文本进行匹配,或者用文本替换匹配的内容。
我遇到的问题是我无法让替换部分工作。我正在查看手册页中的 qr// 条目:http: //perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators但我没有任何运气。在这种情况下,我尝试完全像文档一样对我的代码进行建模。我编译了一个匹配模式,并将其替换为替换。
有人能指出我哪里出错了吗?(不要太担心安全问题,这只是个人使用的一个小脚本)
这是我正在查看的内容:
当我使用 -r "/matt/" -i 运行它并在文本“matt”上输入替换文本“matthew”时,它失败了。为什么是这样?
编辑:
谢谢你们的答案!这真的很有帮助。我将您的两个建议都结合到了该问题的可行解决方案中。我必须稍微不同地处理 /g 标志。这是工作示例:
regex - 如何在 Perl 5.12 中从 C 创建一个 qr//?
这在 5.8 和 5.10 中一直为我工作,但在 5.12 中,我的代码创建了这个奇怪的非 qr 对象:
而打印一个不是由我的代码创建的 qr// 看起来像这样:
我的代码基本上是:
任何人都知道如何从 5.12 中的字符串正确创建正则表达式?
regex - 如何将修饰符添加到带引号的正则 (qr) 表达式
有没有一种简单的方法可以将 'i' 等正则表达式修饰符添加到引用的正则表达式中?例如:
我能想到的唯一方法是print "$pat\n"
返回(?-xism:F(o+)B(a+)r)
并尝试?-xism:
用替换删除“i”