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