Регулярное выражение для получения букв с цифрами слева

#regex

#регулярное выражение

Вопрос:

Я хочу извлечь буквы с цифрами слева.

Например, 3F 4G XY вывод F и G .

Я пытался сделать это, используя это регулярное выражение (?=d)[A-Z] , но потерпел неудачу.

Посмотрите на следующий код:

 s = "1A 2B 3C IJK  X1 Y2 Z3"
s.match(/(?=d)[A-Z]/g)  // null

s.match(/[A-Z](?=d)/g)  // [ 'X', 'Y', 'Z' ]

  

Я был удивлен, почему первое совпадение не было найдено, а второе было найдено правильно.

На мой взгляд, это четное выражение такое же, но меняются левый и правый.

Я неправильно понял?

Это,

Как мне получить этот вывод ['A', 'B', 'C'] ?

Комментарии:

1. Это должен быть положительный взгляд сзади (?<=d)[A-Z]

Ответ №1:

Поскольку текст обрабатывается слева направо, сначала обрабатывается число, поэтому вам нужен предварительный просмотр:

 (?<=d)[A-Z]
  

Таким образом, механизм регулярных выражений переходит к уже обработанному тексту для поиска вашего шаблона