Регулярное выражение AS3: сопоставление ключевых слов

#regex #actionscript-3

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

Вопрос:

Я пытаюсь сопоставить ЛЮБОЕ из нескольких ключевых слов в строке, используя регулярное выражение в AS3. Ниже приведен пример.

 var sourceString = "No, I am working on it. There might be some delay.";
var keywords = ["no", "delay"];
  

Мне нужно проверить, присутствуют ли какие-либо ключевые слова в исходной строке. Ключевые слова и исходные строки будут динамическими. Мне нужно взять исходную строку в качестве входных данных от пользователя, а затем выполнить поиск по некоторым ключевым словам в этой строке. Может ли быть один общий шаблон регулярных выражений для достижения этой цели?

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

1. Я могу выполнить простой цикл и использовать indexOf, чтобы узнать. Однако этот подход медленный, и я ищу решение для регулярных выражений.

Ответ №1:

Вы можете создать новый RegExp объект и использовать его для сопоставления с исходной строкой.

Например:

 var sourceString = "No, I am working on it. There might be some delay.";
var keywords = ["no", "delay"];

var expression:RegExp = new RegExp(keywords.join("|"), "ig");

if (expression.test(sourceString)) {
    // Match found
} else {
    // No match found
}
  

(Непроверенный код.)