ruby - 从长文本中提取子字符串/值
问题描述
我有一个长字符串/文本,例如
...blahblahblahblah,"shortcode":"Bk5z5Lgn1234",blahblahblablha...,"shortcode":"Wuipsz5Lgn1234",blahblahblablh...
我正在寻找以下模式的所有子字符串:
"shortcode":"Bk5z5Lgn1234"
"shortcode":"Wuipsz5Lgn1234"
短代码的值,即Bk5z5Lgn1234
和Wuipsz5Lgn1234
,具有恒定长度(11 个字符)。只需获取值就可以了。如果获取所有出现的短代码值很复杂,那么仅获取第一个值就足够了。
我知道如何找到子字符串(使用扫描方法),但我不知道如何遍历字符串并提取短代码值。
解决方案
如果代码始终采用您指定的确切格式,并且长度为 11 个字符,则此正则表达式将找到它们:
"shortcode":"(.{11})"
以下将返回所有匹配项:
text.scan(/"shortcode":"(.{11})"/)
诚然,这可能不是最有效的解决方案,但简单易用。用正则表达式解析 HTML 绝不是最好的主意。
推荐阅读
- java - Android WallpaperManager 方法“软砖化”用户的手机并导致设备无响应
- laravel-5.1 - 有什么方法可以绕过 Laravel 上的 Model::created() 事件吗?
- bash - 阻止失败的假脱机创建文件?
- qemu - 错误:不存在 DTC (libfdt) 版本 >= 1.4.2。请安装 DTC (libfdt) 开发包
- c# - 来自 Nike.com 的 Web 请求响应被禁止
- javascript - 我如何从 Rails 视图中获取ElementById
- python - ValueError:只能比较标记相同的系列对象 | 比较数据框中的值
- css - 是否可以在通用过渡 Stylus mixin 中创建滚动?
- processing - 意外令牌:处理中的 int
- hadoop - 为每个赛季寻找得分最高的主队