Regex для извлечения слова из последнего, кроме одного - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть похожая строка: «Здравствуйте, мой номер создан 200»

Мне нужно извлечь число 200, я пытался \ bis ([\ s \ S] + $), но он тянет 200 созданных

Ценю вашу помощь в этом отношении

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Вы можете использовать регулярное выражение

\w+(?=\W+\w+\W*$)

Демонстрация

Движок регулярных выражений выполняет следующие операции.

\w+    # match 1+ word chars
(?=    # begin a positive lookahead
  \W+  # match 1+ non-word chars (spaces, punctuation, etc.)
  \w+  # match 1+ word chars (last word in string)
  \W*  # match 0+ non-word chars (spaces, punctuation, etc.)
  $    # match end of string
)
0 голосов
/ 23 апреля 2020

Это работает

const str = 'Hello my Number is 200 created'
const regex = /(\S+)\s\S+$/
const word = str.match(regex)[1]
console.log(word)

Кстати, регулярные выражения не нужны, для некоторых это может быть более читабельно

const str = 'Hello my Number is 200 created'
const words = str.split(' ')
const word = words[words.length-2]
console.log(word)
...