Есть много способов, вы можете найти ли содержать строки «Тема» или «Пост», печать, что из, или возврата информации для дальнейшей обработки или использования некоторой логики для их обработки по отдельности.
Вот некоторые различные способы, я мог бы сделать это:
REGEX = /\b(#{ Regexp.union(%w[Topic Post]) })\b/
=> /\b((?-mix:Topic|Post))\b/
ARRAY = [
"[MediaExecsTech] New Topic Creation in Open Technology forum",
"[MediaExecsTech] New Post Creation in Open Technology forum"
]
ARRAY.each do |s|
puts s[REGEX, 1]
end
=> Topic
=> Post
Это просто печатает слово найдено.
ARRAY.map { |s|
s[REGEX, 1]
}
=> [
[0] "Topic",
[1] "Post"
]
Это возвращает массив для каждой искомой строки. Если слова не отображаются, элемент массива будет nil
.
ARRAY.each do |s|
case s[REGEX, 1]
when 'Topic'
puts "#{ s } contains Topic"
when 'Post'
puts "#{ s } contains Post"
end
case s
when /\bTopic\b/i
puts "#{ s } contains Topic"
when /\bPost\b/i
puts "#{ s } contains Post"
end
end
=> [MediaExecsTech] New Topic Creation in Open Technology forum contains Topic
=> [MediaExecsTech] New Topic Creation in Open Technology forum contains Topic
=> [MediaExecsTech] New Post Creation in Open Technology forum contains Post
=> [MediaExecsTech] New Post Creation in Open Technology forum contains Post
Они просто распечатывают строку и были ли найдены «Тема» или «Почта». Вместо печати вы можете продолжить обработку.
возвращает «#». Я хочу только вернуть «Тема» любую помощь. Спасибо –
Kashiftufail
это работает для меня mystring.match (/ post | topic/i) [0] – Kashiftufail
Вы должны объяснить, как это работает. Не давайте им рыбу, научите их ловить рыбу. Кроме того, это не достаточно плотный шаблон: он также соответствует «почтовым», «загородным», «атопическим», «актуальным». –