gpt4 book ai didi

mysql - 将存储在 mysql 字段中的正则表达式字符串用于 Rails 项目

转载 作者:行者123 更新时间:2023-11-29 22:40:55 25 4
gpt4 key购买 nike

为了清理 Rails 项目的代码,我将所有正则表达式字符串移至 MySQL。如何将 MySQL 字段中的字符串添加到我的匹配方法中?这是我正在尝试做的事情的示例:

foobar = []
regular_ex = StringDb.pluck(:id, :regex)
# :regex is a column that stores regex strings, ie. '/[a-c]|[1,2,3]/'
regular_ex.each do |exp|
if foo.match(exp[1])
foobar << exp[0]

如果我的问题不清楚,请告诉我。提前致谢!

最佳答案

您可以像这样从字符串创建新的正则表达式

Regexp.new str

或者使用正则表达式插值

%r{#{regex_string}}

这意味着你会做类似的事情

foobar = []
regular_ex = StringDb.pluck(:id, :regex)
# :regex is a column that stores regex strings, ie. '/[a-c]|[1,2,3]/'
regular_ex.each do |exp|
if Regexp.new(exp).match("stringToMatch")
# do something

请注意两件事。

  1. 为了使其正常工作,您应该从数据库中的正则表达式中删除开头和结尾的斜杠。

存储“[a-c]|[1,2,3]”而不是“/[a-c]|[1,2,3]/”。

  • 我不太确定您为什么决定将所有正则表达式存储在数据库中,但这听起来不是一个好主意。
  • 关于mysql - 将存储在 mysql 字段中的正则表达式字符串用于 Rails 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354060/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com