鉴于M_16x16_a_b_c可以包含任何数字来代替a,b和c:我想知道使用通配符搜索方法的最佳方法是什么,以便我可以搜索对于任何可能的字符串,通过执行诸如“searchfor(”M_16x16_ _ _ *“)”的操作。用类似方法的通配符搜索在java中搜索字符串
0
A
回答
0
您将需要使用正则表达式。
Here是一个很好的教程。
0
正则表达式是很好的通用解决方案。
对于您的特定示例,您可以尝试以下操作,这可能会提供更好的性能。
String s; // Assign somewhere
boolean hit = s.startsWith("M_16x16_")
0
尝试这样的事情
// URL that generated this code:
// http://txt2re.com/index-java.php3?s=M_16x16_111_222_333&-13&-42&-15&-26&-14&-16&-27&-43&2&-44&3&-45&4&-5&-6
import java.util.regex.*;
class Main
{
public static void main(String[] args)
{
String txt="M_16x16_111_222_333";
String re1="(M)"; // Any Single Word Character (Not Whitespace) 1
String re2="(_)"; // Any Single Character 1
String re3="(16)"; // Integer Number 1
String re4="(1)"; // Any Single Digit 1
String re5="(6)"; // Any Single Digit 2
String re6="(x16)"; // Alphanum 1
String re7="(1)"; // Any Single Digit 3
String re8="(6)"; // Any Single Digit 4
String re9="(_)"; // Any Single Character 2
String re10="(\\d+)"; // Integer Number 2
String re11="(_)"; // Any Single Character 3
String re12="(\\d+)"; // Integer Number 3
String re13="(_)"; // Any Single Character 4
String re14="(\\d+)"; // Integer Number 4
Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11+re12+re13+re14,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(txt);
if (m.find())
{
String w1=m.group(1);
String c1=m.group(2);
String int1=m.group(3);
String d1=m.group(4);
String d2=m.group(5);
String alphanum1=m.group(6);
String d3=m.group(7);
String d4=m.group(8);
String c2=m.group(9);
String int2=m.group(10);
String c3=m.group(11);
String int3=m.group(12);
String c4=m.group(13);
String int4=m.group(14);
System.out.print("("+w1.toString()+")"+"("+c1.toString()+")"+"("+int1.toString()+")"+"("+d1.toString()+")"+"("+d2.toString()+")"+"("+alphanum1.toString()+")"+"("+d3.toString()+")"+"("+d4.toString()+")"+"("+c2.toString()+")"+"("+int2.toString()+")"+"("+c3.toString()+")"+"("+int3.toString()+")"+"("+c4.toString()+")"+"("+int4.toString()+")"+"\n");
}
}
}
//-----
// This code is for use with Sun's Java VM - see http://java.sun.com/ for downloads.
//
// Paste the code into a new java application or a file called 'Main.java'
//
// Compile and run in Unix using:
// # javac Main.java
// # java Main
//
相关问题
- 1. 通配符字符串搜索算法
- 2. 用搜索字符串。通配符
- 3. 字符串搜索/通配符匹配
- 4. Python类似的字符串搜索
- 5. 类似字符串的PostgreSQL搜索列
- 6. PHP搜索字符串(带通配符)
- 7. Java的搜索字符串
- 8. Java中的字符串搜索算法
- 9. Java搜索字符串(kmp)
- 10. 通过搜索字符串
- 11. 通过字符串搜索
- 12. PHP - 搜索类似于字符串的字符串
- 13. 通配符搜索
- 14. 通配符搜索
- 15. 通配符搜索
- 16. 通配符搜索
- 17. 使用通配符字符搜索字符串的SQL
- 18. Java通过字符串搜索
- 19. Python在字符串中使用通配符搜索值
- 20. 在字符串中搜索'$'
- 21. ngram通配符搜索弹性搜索
- 22. 弹性搜索通配符搜索
- 23. 字符串搜索算法
- 24. 字符串搜索算法
- 25. 搜索字符串的最快方法?
- 26. 搜索字符串中的字符串
- 27. 在Java中搜索字符串数组?
- 28. 在Hashtable中搜索字符串 - Java
- 29. 如何搜索字符串在java中
- 30. 用字符串集合中的通配符搜索
正则表达式会为你工作? – Justin