Выражения регулярных выражений и метод сопоставления - PullRequest
1 голос
/ 24 сентября 2019

Я знаю, что совпадение, проверит, совпадает ли моя строка с выражением регулярного выражения между скобками.

RegExp(string.match(/\/(.+)\/.*/)[1], string.match(/\/.+\/(.*)/)[1]);

Но что (/\/(.+)\/.*/)[1] вернет?

1 Ответ

0 голосов
/ 24 сентября 2019

Предположим следующее:

let string = "prefix /regex/ text";

string.match вернет следующий массив:

[
    "/regex/ text",
    "regex"
]

Массив состоит из двух элементов:

  • [0] = "/regex/ text" - текст, которому соответствует регулярное выражение
  • [1] = "regex" - текст в вашей первой группе ((.+))

Так что string.match(/\/(.+)\/.*/)[1] возвращает "regex" в этомпример

Обратите внимание, что это регулярное выражение немного наивно.С учетом следующего ввода:

"/regex1/ some text /regex2/"

string.match(/\/(.+)\/.*/)[1] в конечном итоге вернется:

"regex1/ some text /regex2"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...