0

我有一个字符串列表,我想从列表中删除与另一个列表中的任何正则表达式模式匹配的每个字符串。我已经以这种方式解决了它,但是,我知道有更好的方法。例如:

Regex_list := ["^reg\ex1", "/^\d+$/", "^Apple"]

String_list := ["Apple", "Banana", "Pair" "12345"]

想要 - {香蕉,一对}

我不知道我的正则表达式,但对于这个例子,假设 Apple 和 12345 匹配正则表达式列表中的最后 2 个。我想要一个只包含 Banana 和 Pair 的列表。

我的看法:

string_list := input.string_list[_]

match := {x | x := string_list; regex.match(data.regex_list[_], x)}--> {苹果,12345}

dont_match := string_list - match--> {"香蕉", "对"}

4

1 回答 1

0

我认为这是最好的方法。或者,您可以使用规则来构建一组匹配项,但原理是相同的。

matches[s] {
    r := [`^reg\ex1`, `^\d+$`, `^Apple`][_]
    s := ["Apple", "Banana", "Pair", "12345"][_]
    
    regex.match(r, s)
}
于 2021-10-05T17:38:47.643 回答