Google Refine: Могу ли я использовать переменную в регулярном выражении?

Я пытаюсь сделать что-то подобное в Open/Google Refine:

forEach(["foo", "bar"], regex, value.match(/.*(regex).*/))

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

Есть идеи?

1 ответ

import java.util.regex.*;

public class PatternExample {
    public static void main(String[] args) {
        String arr_regex[] = {"foo", "bar"};
        String arr_str[] = {"abcfoodef", "cbard"};
        int i = 0;
        for(String str : arr_str) {
            Pattern pattern = Pattern.compile("(?i).*"+arr_regex[i]+".*");
            Matcher matcher = pattern.matcher(str);
            System.out.println("Input String matches regex - "+matcher.matches());
            i++;
        }
    }
}

Я думаю, что это в значительной степени вы хотели. Пример в Java, но покажет вам, как это сделать

Другие вопросы по тегам