首页 > 解决方案 > 从长文本中提取子字符串/值

问题描述

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

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

我正在寻找以下模式的所有子字符串:

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

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

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

标签: ruby

解决方案


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

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

以下将返回所有匹配项:

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

诚然,这可能不是最有效的解决方案,但简单易用。用正则表达式解析 HTML 绝不是最好的主意。


推荐阅读