我必须承认,在编写正则表达式时我非常无用,但我目前遇到了一个让我非常困惑的问题。
我编写了一个函数,它将字符串作为输入(大小为 22K)并对其执行单个正则表达式,以查找 Long 值。已找到一个 long 值,将其替换为来自 hashmap 的 String 值。
但是,它一直在字符串中缺少值,我写的正则表达式是:
Pattern.compile("[*]{3}[0-9]{1,}[*]{3}");
我在文件中搜索的长值的格式如下:
***nnnnnnnnnnnnnnnn***
现在正则表达式似乎可以工作,但就像我说的,它遗漏了一些值,例如:
***1407374883553285*** - FOUND
***281474976720057*** - NOT FOUND
我真的很困惑为什么它缺少值,我正在使用一个简单的 while 循环来进行搜索,以及matcher.find()
它何时匹配。
我假设我的正则表达式不够严格,或者由于输入字符串中数据的结构方式而缺少值。
如果有人可以提供任何建议,我将不胜感激。
谢谢