如何使用Ruby / Rails在字符串中查找特定单词

瓦格纳·马托斯英国

我得到一些像这样的字符串:

TFjyg9780878_867978-DGB097908-78679iuhi698_widesky_light_87689uiyhk

TFjyg9780878_867978-DGB097908-78679iuhi698_sky_light_87689uiyhk

TFjyg9780878_867978-DGB097908-78679iuhi698_widesky_dark_87689uiyhk

TFjyg9780878_867978-DGB097908-78679iuhi698_sky_dark_87689uiyhk

我需要检查是否上面的字符串具有的一个widesky_lightsky_lightwidesky_darksky_dark经精密,所以我写了这个:

if my_string.match("widesky_light")
  ...
end 

对于每个变体,但我遇到的问题是因为sky_lightwidesky_light相似,我的代码无法正常工作。我相信上述解决方案将是正则表达式,但昨天我花了整个下午试图使它正常工作。

有什么建议么?

编辑

一个警告:在此字符串(为例): TFjyg9780878_867978-DGB097908-78679iuhi698_widesky_light_87689uiyhk之后的部分widesky_light,这是_87689uiyhk可选的,这意味着有时我有它,有时我不这样做,那么解决方案将无法指望_string_

埃里克·杜米尼尔(Eric Duminil)

正则表达式

第一个正则表达式:提取单词以进行进一步检查

这是一个仅与有趣部分匹配的正则表达式:

(?<=_)[a-z_]+(?=(?:_|\b))

这意味着lowercase word with possible underscore inside, between 2 underscores or after 1 underscore and before a word boundary如果根据情况需要一些逻辑(宽天空,天空,亮或暗),则可以使用此解决方案。

在这里行动。

第二个正则表达式:直接检查是否存在4个单词之一

如果您仅想了解这4种情况中的任何一种:

(?<=_)(?:wide)?sky_(?:dark|light)(?=(?:_|\b))

在这里,无论有无,都_something_after无所作为。

案例陈述

list = %w(
  TFjyg9780878_867978-DGB097908-78679iuhi698_widesky_light_87689uiyhk
  TFjyg9780878_867978-DGB097908-78679iuhi698_sky_light_87689uiyhk
  TFjyg9780878_867978-DGB097908-78679iuhi698_widesky_dark_87689uiyhk
  TFjyg9780878_867978-DGB097908-78679iuhi698_sky_dark_87689uiyhk
  TFjyg9780878_867978-DGB097908-78679iuhi698_trash_dark_87689uiyhk
)

list.each do |string|
  case string
  when /widesky_light/ then puts "widesky light found!"
  when /sky_light/     then puts "sky light found!"
  when /widesky_dark/  then puts "widesky dark found!"
  when /sky_dark/      then puts "sky dark found!"
  else                      puts "Nothing found!"
  end
end

按照这种顺序,case语句应该没问题。widesky_dark例如,不会匹配两次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TSQL:如何使用charindex?-在特定字符之间的可变字符串中查找特定单词

来自分类Dev

如何从字符串中查找特定单词并通过这些单词合并变量 2

来自分类Dev

如何查找和更改字符串中特定单词的颜色

来自分类Dev

如何快速替换字符串中的特定单词?

来自分类Dev

我如何从字符串中获取特定单词?

来自分类Dev

如何快速替换字符串中的特定单词?

来自分类Dev

如何通过使用 re python 忽略特定字符从字符串中搜索特定单词

来自分类Dev

如何使用R删除字符串中特定单词之前和之后的单词?

来自分类Dev

如果字符串中有特定单词,如何从列表中删除字符串

来自分类Dev

如果特定单词存在于字符串中的单词之前,如何删除它们

来自分类Dev

PHP-如何使用数组更改字符串中的特定单词

来自分类Dev

如何选择出现在postgres中特定单词之后的特定子字符串?

来自分类Dev

使用REGEX获取句子中不包含特定单词的特定字符串?

来自分类Dev

如何在特定单词后切字符串?

来自分类Dev

如何从字符串开头删除特定单词?

来自分类Dev

如何使用 preg_match 查找两个或三个特定单词的字符串模式

来自分类Dev

如何在C ++中删除特定单词之前的字符串中的所有内容?

来自分类Dev

如何从mysql中的字符串中删除特定单词?

来自分类Dev

如何从C#中包含特定单词的字符串中获取文本?

来自分类Dev

如何从mysql中的字符串中删除特定单词?

来自分类Dev

如何从 CSV(在 Python 中)的字符串中删除特定单词?

来自分类Dev

如何在字符串中的特定单词之后选择Oracle SQL中的子字符串?

来自分类Dev

C ++如何扫描用户的字符串输入中的特定单词?

来自分类Dev

如何在Java中的特定单词后获取子字符串

来自分类Dev

Clojure-如何计算字符串中的特定单词

来自分类Dev

如何为字符串中的特定单词添加颜色?

来自分类Dev

如何从文本文件中的字符串中提取特定单词?C ++

来自分类Dev

如何在bash中的特定单词之前打印字符串?

来自分类Dev

如何从Postgres中的字符串中提取特定单词

Related 相关文章

  1. 1

    TSQL:如何使用charindex?-在特定字符之间的可变字符串中查找特定单词

  2. 2

    如何从字符串中查找特定单词并通过这些单词合并变量 2

  3. 3

    如何查找和更改字符串中特定单词的颜色

  4. 4

    如何快速替换字符串中的特定单词?

  5. 5

    我如何从字符串中获取特定单词?

  6. 6

    如何快速替换字符串中的特定单词?

  7. 7

    如何通过使用 re python 忽略特定字符从字符串中搜索特定单词

  8. 8

    如何使用R删除字符串中特定单词之前和之后的单词?

  9. 9

    如果字符串中有特定单词,如何从列表中删除字符串

  10. 10

    如果特定单词存在于字符串中的单词之前,如何删除它们

  11. 11

    PHP-如何使用数组更改字符串中的特定单词

  12. 12

    如何选择出现在postgres中特定单词之后的特定子字符串?

  13. 13

    使用REGEX获取句子中不包含特定单词的特定字符串?

  14. 14

    如何在特定单词后切字符串?

  15. 15

    如何从字符串开头删除特定单词?

  16. 16

    如何使用 preg_match 查找两个或三个特定单词的字符串模式

  17. 17

    如何在C ++中删除特定单词之前的字符串中的所有内容?

  18. 18

    如何从mysql中的字符串中删除特定单词?

  19. 19

    如何从C#中包含特定单词的字符串中获取文本?

  20. 20

    如何从mysql中的字符串中删除特定单词?

  21. 21

    如何从 CSV(在 Python 中)的字符串中删除特定单词?

  22. 22

    如何在字符串中的特定单词之后选择Oracle SQL中的子字符串?

  23. 23

    C ++如何扫描用户的字符串输入中的特定单词?

  24. 24

    如何在Java中的特定单词后获取子字符串

  25. 25

    Clojure-如何计算字符串中的特定单词

  26. 26

    如何为字符串中的特定单词添加颜色?

  27. 27

    如何从文本文件中的字符串中提取特定单词?C ++

  28. 28

    如何在bash中的特定单词之前打印字符串?

  29. 29

    如何从Postgres中的字符串中提取特定单词

热门标签

归档