【发布时间】:2022-01-09 23:16:09
【问题描述】:
我将正则表达式存储在一个变量中 -
s="/\A([^@\s]+)@((?:a-b+\.)+(in|com))\z/".
"sourabh@a-b.in".match?(/\A([^@\s]+)@((?:a-b+\.)+(in|com))\z/) => returns true
Regexp.new(s) => returns /\/A([^@ ]+)@((?:a-b+.)+(in|com))z\//
"sourabh@a-b.in".match?(Regexp.new(s)) => returns false
在数据库中存储正则表达式时,\ 会自动删除。
我将以字符串的形式获取正则表达式验证器。不知道为什么它不起作用?
【问题讨论】:
-
将正则表达式模式传递给数据库时,将其保存为纯字符串。然后,从 DB 中获取它时,使用
Regexp构造函数。 -
@WiktorStribiżew 你能帮我把这个
/\A([^@\s]+)@((?:a-b+\.)+(in|com))\z/正则表达式转换成纯字符串吗? -
我用例子添加了一个完整的答案。