Как правильно разделить строку?

#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: И для чего это стоит, нет необходимости экранировать @ в регулярных выражениях.