我允许用户放置关键字,如果有人使用这些关键字创建项目,则用户会收到电子邮件警报。
但是我有一个问题,我想我需要正则表达式,但是我不知道怎么做。 例如,如果用户在关键字中输入“ UX”,则当有人用“ veUX”(法文)一词创建项目时,他将收到电子邮件。
在Ruby中,我需要检查字符串中的关键字是否为单词(例如,前后带有空格),而不是单词中的字符。
你知道我该怎么办吗?
这是我的工作:
def common_keywords_email_alert?(user, project)
name_description = I18n.transliterate([project.name.downcase, project.description.downcase].join(' '))
user.email_alert.keywords&.any? do |keyword|
user.email_alert.keywords.join(' ')
name_description.include?(keyword)
end
end
非常感谢
答案 0 :(得分:1)
您正在寻找边界指令\ b(https://www.regular-expressions.info/wordboundaries.html):
regex = /\bUX\b/
"blah".match(regex) # => nil
"veUX".match(regex) # nil
"my UX".match(regex) # => #<MatchData "UX">
"UX".match(regex) # => #<MatchData "UX">
"UX is great".match(regex) # => #<MatchData "UX">