错误[]无效范围
我在将正则表达式与如下术语匹配时遇到范围错误:
(5r)-6-(4-{[2-(3-Iodobenzyl)-3-Oxocyclohex-1-En-1-Yl]Amino}Phenyl)-5-Methyl-4,5-Dihydropyridazin-3(2h)-One
show range error at 2-(
有人可以告诉我如何关闭括号、范围运算符等字符的效果吗?
I am getting a range error while matching regular expressions with terms like below:
(5r)-6-(4-{[2-(3-Iodobenzyl)-3-Oxocyclohex-1-En-1-Yl]Amino}Phenyl)-5-Methyl-4,5-Dihydropyridazin-3(2h)-One
show range error at 2-(
Can somebody tell me how to turn off the effect of such characters like brackets, range operator etc.?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这并不难 - 只需在此类术语之前使用
\Q
并在其之后使用\E
即可。说,
/\Q(4-{[2-(3-Iodobenzyl)-3-Oxocyclohex\E/
)。给定术语中不能有
\E
。It is not hard - just use
\Q
before and\E
after such a term.Say,
/\Q(4-{[2-(3-Iodobenzyl)-3-Oxocyclohex\E/
.You only cannot have
\E
in the given term.有两种转义/引用这些运算符的方法:
使用
quotemeta
使用
\Q...\E
只需用
\Q...\E
括住字符串也可以转义任何正则表达式运算符。您可以直接在正则表达式中使用它:或者使用变量扩展:
There are two methods of escaping/quoting those operators:
using
quotemeta
using
\Q...\E
Just enclose your string with
\Q...\E
also escapes any regex-operators. You can use this directly in the regex:Or with variable expansion: