从长文本中提取子字符串/值

时间:2018-07-09 16:32:38

标签: ruby

我有一个长字符串/文本,例如

...blahblahblahblah,"shortcode":"Bk5z5Lgn1234",blahblahblablha...,"shortcode":"Wuipsz5Lgn1234",blahblahblablh...

我希望提取以下模式的所有子字符串:

"shortcode":"Bk5z5Lgn1234" "shortcode":"Wuipsz5Lgn1234"

短代码的值Bk5z5Lgn1234Wuipsz5Lgn1234的长度是恒定的(11个字符)。仅获取值就可以了。如果获取所有出现的简码值的过程很复杂,那么仅获取第一个值就足够了。

我知道如何(使用scan方法)查找子字符串,但是我不知道如何遍历字符串并提取短代码值。

1 个答案:

答案 0 :(得分:2)

如果代码始终采用您指定的确切格式,且长度为11个字符,则此正则表达式将找到它们:

"shortcode":"(.{11})"

以下内容将返回所有匹配项:

text.scan(/"shortcode":"(.{11})"/)

很可能这不是最有效的解决方案,而是简单易用。用正则表达式解析HTML永远不是最好的主意。