String temp = "77"; // It can be 0 or 100 or any value
// So the pattern will be like this only but number can be change anytime
String inclusion = "100;0;77;200;....;90";
我需要编写一个正则表达式,以便我可以看到temp是否存在于包含中,所以我写了一个像这样的regexPattern。
// This is the regular Expression I wrote.
String regexPattern = "(^|.*;)" + temp + "(;.*|$)";
那么你认为这个正则表达式每次都会起作用吗或者regexPattern有问题吗?
if(inclusion.matches(regexPattern)) {
}
答案 0 :(得分:4)
如果temp
可以包含正则表达式的特殊字符,则可能会遇到问题,但如果它总是整数,那么您的方法应该没问题。
但是,更直接的方法是将字符串拆分为分号,然后查看结果数组中是否有temp
。
<击>
如果您坚持使用正则表达式,可以通过删除.*
来简化它,以下将与您当前的正则表达式相同:
"(^|;)" + temp + "(;|$)"
击> <击> 撞击>
编辑哎呀,上面的内容实际上不起作用,我对Java中的正则表达式有些不熟悉,并没有意识到整个字符串需要匹配,感谢Affe!
答案 1 :(得分:3)
您不需要正则表达式:
temp = "77"
String searchPattern = ";" + temp + ";";
String inclusion = ";" + "100;0;77;200;....;90" + ";";
inclusion.indexOf(searchPattern);
答案 2 :(得分:1)
另一种没有正则表达式的替代方案
String inclusion2 = ";" + inclusion + ";"; // To ensure that all number are between semicolons
if (inclusion2.indexOf(";" + temp + ";") =! -1) {
// found
}
当然,这里没有模式识别(通配符等)