#javascript
#javascript
Вопрос:
Например, у меня есть эта строка:
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?"]
Как правильно разделить эту строку?
Ответ №1:
Если вы используете регулярное выражение в качестве split
аргумента, группа захвата (соответствующая тому, что находится между круглыми скобками) также возвращается в результате. Итак, вы должны просто сделать эту группу захвата целым выражением:
a.split(/(@USER_ID:[0-9] @)/)
Обратите внимание, что регулярное выражение можно сократить до:
a.split(/(@USER_ID:d @)/)
Комментарии:
1. OP: И для чего это стоит, нет необходимости экранировать
@
в регулярных выражениях.