regex - 正则表达式 - 捕获多个组并将它们多次组合在一个字符串中
问题描述
我需要使用正则表达式组合一些文本,但是在尝试捕获和替换我的字符串时遇到了一些麻烦。例如 - 我需要从一开始就捕获数字,并将它们替换为 || 之间关闭的每个部分
我有:
||10||a||ab||abc||
我想:
||10||a10||ab10||abc10||
所以我需要捕获组 1 中的 '10' 和捕获组 2 中的 'a|ab|abc'
我已经尝试过类似的方法,但它对我不起作用(仅捕获一个 [az] 组)
(?=.*\|\|(\d+)\|\|)(?=.*\b([a-z]+\b))
解决方案
我会在没有复杂的正则表达式的情况下实现这一点。例如,您可以这样做:
input = "||10||a||ab||abc||"
parts = input.scan(/\w+/) # => ["10", "a", "ab", "abc"]
parts[1..-1].each { |part| part << parts[0] } # => ["a10", "ab10", "abc10"]
"||#{parts.join('||')}||"
推荐阅读
- neo4j - 如何创建具有多个关系的唯一节点?
- c++ - c ++中的自定义模型不会更新QML端的ListView
- html - IE11 认为注释代码中的双破折号是结束注释标记
- openlayers-3 - 栅格重投影 - 请求不同投影的栅格
- javascript - 在javascript中使用getElementsByTagName获取输入字段的值和名称?
- c# - 完整的 .NET 引用 .NET Standard 类库:FileNotFoundException
- c++ - 使用 std::tuple 从地图中输出
- wpf - WPF:如何使用命令获取我的 TextBox 文本属性
- angular - 如果您在 Angular 中选择下拉列表,如何显示材料下拉列表中的数据?
- raku - Raku (née Perl 6) reduce function 和 reduction metaoperator 给出不同的结果