使用正则表达式搜索哈希集



有一个字符串的哈希集,我想搜索键。哈希集内容看起来像

AB
A1-A2-A3
A1
A2-A3
AD-A1
AZ
...

如果我使用 theSet.contains("A1") ,那么它只会返回A1。但是,我想得到A1-A2-A3A1AD-A1.我的数据文件中的特殊字符是-,这是分隔符,以防一行包含该字符。

如果我不使用 HashSet 并在字符串数组中搜索,那么我知道如何使用 matcher() .哈希集有什么解决方案吗?

没有比遍历整个HashSet并在每个元素上运行匹配器更好的解决方案了。

for (String str : set) {
  if (str.contains("A1")) {
    // do whatever with str
  }
}

好吧,你可以尝试类似的东西...

拿走所有的键,并构造一个很长的丑陋的字符串

,AB,A1-A2-A3,A1,A2-A3,AD-A1,AZ,...

然后找到 A1 的所有正则表达式的"种类":

uglystring = ",AB,A1-A2-A3,A1,A2-A3,AD-A1,"
thelist = re.findall("([^,]*A1[^,]*)", uglystring)
print (thelist)

那是在蟒蛇中。 很丑陋,但也许让你朝着正确的方向前进?

最新更新