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

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

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

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

Любые идеи?


person Jens    schedule 03.01.2014    source источник


Ответы (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, но покажет вам, как это сделать.

person Rizstien    schedule 03.01.2014