我正在开发一个需要处理包含电子邮件的文本文件的应用程序。我需要文本中的所有标记,以下是标记的定义:
FREE!!
,$50
是令牌'。' 如果点号和点号之间出现逗号,则将其视为逗号。例如:
192.168.1.1,$ 24,500
是令牌。
等等..
请向我建议一些针对Java的开源令牌生成器,这些定制器很容易定制以满足我的需求。仅使用StringTokenizer和regex就足够了吗?我还必须执行停止操作,这就是为什么我一直在寻找一个开源令牌生成器,它还将执行一些额外的操作,例如停止,阻止。
前面的一些评论:
StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人改用String的split方法或java.util.regex软件包。
至于正则表达式,这实际上取决于您的要求。鉴于以上所述,这可能会起作用:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Mkt {
public static void main(String[] args) {
Pattern p = Pattern.compile("([$\\d.,]+)|([\\w\\d!$]+)");
String str = "--- FREE!! $50 192.168.1.1 $24,500";
System.out.println("input: " + str);
Matcher m = p.matcher(str);
while(m.find()) {
System.out.println("token: " + m.group());
}
}
}
这是一个示例运行:
$ javac Mkt.java && java Mkt
input: --- FREE!! $50 192.168.1.1 $24,500
token: FREE!!
token: $50
token: 192.168.1.1
token: $24,500
现在,您可能需要调整正则表达式,例如:
$24,500
一个例子。这应该工作$24,500abc
还是$24,500EUR
?192.168.1.1
应包括在内。它是否也应包含192,168.1,1
(已给出.
并,
要包含在内)?我想还有其他事情要考虑。
希望这有助于您入门。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句