我正在开发一个应用程序,在其中我需要处理包含电子邮件的文本文件。我需要文本中的所有标记,下面是令牌的定义:
FREE!!,$50是代币以此类推。
请建议我一些开源的Java令牌,它们很容易定制以满足我的需要。仅仅使用StringTokenizer和regex就足够了吗?我还必须执行停止,这就是为什么我正在寻找一个开源令牌程序,它也将执行一些额外的事情,如停止,堵塞。
发布于 2013-07-19 00:08:49
先提几点意见:
StringTokenizer是一个遗留类,由于兼容性原因而保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。
至于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 (给定.和,将包括在内)?我想还有其他的事情要考虑。
希望这能让你开始工作。
https://stackoverflow.com/questions/17723864
复制相似问题