Ruby正则表达式避免匹配组

Ruby正则表达式避免匹配组,ruby,regex,regex-group,Ruby,Regex,Regex Group,我在缓冲区中运行了以下代码(用于在Ruby中取消JS字符串的扫描): 我只使用“\\ud83c\\udfec”,而不是“\\udfec” 在Ruby或regex中有没有办法只获取第一部分 此处应使用单个分组构造,该构造用于匹配四个十六进制字符的一个或多个匹配项,并省略导致结果数组中出现额外项的内部捕获组: .scan(/^(?:\\u[\da-fA-F]{4})+/) 请注意,+是编写{1,}(一次或多次出现)的更简单、更短的方法 详细信息 ^-字符串的开头 (?:-非捕获组的开始(它匹配的

我在缓冲区中运行了以下代码(用于在Ruby中取消JS字符串的扫描):

我只使用
“\\ud83c\\udfec”
,而不是
“\\udfec”


在Ruby或regex中有没有办法只获取第一部分

此处应使用单个分组构造,该构造用于匹配四个十六进制字符的一个或多个匹配项,并省略导致结果数组中出现额外项的内部捕获组:

.scan(/^(?:\\u[\da-fA-F]{4})+/)
请注意,
+
是编写
{1,}
(一次或多次出现)的更简单、更短的方法

详细信息

  • ^
    -字符串的开头
  • (?:
    -非捕获组的开始(它匹配的内容不会添加到最终的
    扫描结果中):
    
    • \\u
      -a
      \u
      子字符串
    • [\da-fA-F]{4}
      -四个十六进制字符
  • )+
    -1次或多次出现(组模式序列)
hex_substring.scan(/^((\\u[\da-fA-F]{4}){1,})/)
# => [["\\ud83c\\udfec", "\\udfec"]]
.scan(/^(?:\\u[\da-fA-F]{4})+/)