例如,我有以下字符串:
a = "Hello, @USER_ID:1@, how are you?"
我需要将此字符串转换为单词数组:
["Hello, ", "@USER_ID:1@", ", how are you?"]
我尝试过这段代码:
a.split(/\@USER_ID:([0-9]+)\@/)
但是它返回这个:
["Hello, ", "1", ", how are you?"]
分割此字符串的正确方法是什么?
答案 0 :(得分:5)
如果您使用正则表达式作为split
参数,则捕获组(与括号之间的值匹配)也会返回到结果中。因此,您应该只使该捕获组成为整个表达式:
a.split(/(\@USER_ID:[0-9]+\@)/)
请注意,正则表达式可以缩短为:
a.split(/(@USER_ID:\d+@)/)