gpt4 book ai didi

java - 从字符串集中推断正则表达式模式,我需要 java 中的算法来创建以下信息

转载 作者:行者123 更新时间:2023-12-05 01:15:13 25 4
gpt4 key购买 nike

我想使用 java 将字符串集转换为正则表达式。

我搜索了很多东西,但互联网上没有这样令人满意的答案可以解决我的问题。所以我更愿意在这里问。

如果可以,首先是否可以转换它,然后请建议我摆脱我面临的这个问题的方法?

假设我有一组字符串

abb
abababb
babb
aabb
bbbbabb
...

我想为它做一个正则表达式,比如

(a+b)*abb

这怎么可能?

最佳答案

如果您有一个字符串集合,并且想要构建一个匹配任何这些字符串的正则表达式,您应该构建一个使用 | OR 模式的正则表达式。

由于字符串可能包含正则表达式特殊字符,因此需要引用。

要确保最佳字符串匹配,您需要首先匹配最长的字符串。例如。如果 abaabax 都在列表中,并且要扫描的文本包含 abax,我们希望匹配第二个字符串,而不是第一个。

所以,你可以这样做:

public static String toRegex(Iterable<String> strings) {
return StreamSupport.stream(strings.spliterator(), false)
.sorted(Comparator.comparingInt(String::length).reversed())
.map(Pattern::quote)
.collect(Collectors.joining("|"));
}

关于java - 从字符串集中推断正则表达式模式,我需要 java 中的算法来创建以下信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56499594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com