Как получить последние два слова, написанные на регулярном выражении в Javascript - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь получить данные после двоеточия.

Это мой код:

function myFunction() {

  var withBreaks = "*Cats are:* cool Pets [CATS]"
  var sheet = SpreadsheetApp.getActiveSheet()
  if (withBreaks) {
    var tmp;
    tmp = withBreaks.match(/^[\*]Cats are:[\*][\s]([a-z]+[\s]+[A-Za-z].*)$/m); //
      var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No username';
  sheet.appendRow([username])
}
};

Так что я пытаюсь получить информацию после *Cats are:*. Этот код работает, но иногда некоторые предложения будут иметь звездочку, а иногда не будет звездочки для разных предложений. Я хотел бы сделать более объединяющим, если это немного прояснит мой вопрос.

То, что я хотел бы сделать, без указания звездочки, получить данные после:. Так что все, что после кошек: Нужно ли указывать звездочку?

1 Ответ

0 голосов
/ 07 ноября 2018

Я предлагаю

/^\**Cats are:\**\s*([\s\S]*)/

Здесь любой текст вводится в группу 1 с ([\s\S]*), а звездочки становятся необязательными с * квантификатором, означающим 0 или более повторений.

См. Демоверсию regex

Если звездочки могут появляться 1 или 0 раз, заменить * на ?:

/^\*?Cats are:\*?\s*([\s\S]*)/
    ^           ^

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

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