【发布时间】:2011-09-03 10:33:33
【问题描述】:
您好,
假设您想测试一个字符串以查看它是否完全匹配,或者它是否与 _ 以及在 _ 后面附加的任意数量的字符匹配
有效匹配示例:
MyTestString
MyTestString_
MyTestString_1234
如果性能是一个大问题,您会调查哪些方法?目前我正在做以下事情:
if (String.equals(stringToMatch)) {
// success
} else {
if (stringToMatch.contains(stringToMatch + "_")) {
// success
}
// fail
}
我尝试用 _* 上的 Java.util.regex.Pattern 匹配替换 String.contains _ 的模式,但效果要差得多。我的解决方案是理想的还是您能想出更巧妙的方法来进一步提高性能?
感谢您的意见
【问题讨论】:
-
顺便提一下:这个
stringToMatch.contains(stringToMatch + "_")将始终计算为false,因为应该在第一个字符串中的字符串比那个长。 -
发布您尝试过的确切模式。顺便说一句,我不会使用贪婪的。
-
您的数据是什么样的?
"abc MyTestString cde"应该匹配吗?"MyTestStringFooBar"是有效匹配吗?你有一个大的文本块吗?
标签: java regex string-comparison