带*的字符串匹配问题?
String words= "我|问*题|haha|他的 ";//正则
String reg= "要是有问题就说啊 ";//输入的字符串
怎么样做可以返回 "问*题 "?
------解决方案--------------------\*进行转化。
------解决方案--------------------使用的是http://jakarta.apache.org/regexp/index.html中的正则表达式包。
源程序如下:
package test.csdn;
import java.util.*;
import org.apache.regexp.*;
public class Tools {
public static void main(String [] args) {
String inputStr = "要是有问题就说啊 ";
String patternStr = "我|问*题|haha|他的 ";
List result = Tools.applyPattern(patternStr, inputStr);
for(int i = 0; i < result.size(); i++) {
System.out.println((String) result.get(i));
}
}
public static List applyPattern(String patternStr, String inputStr) {
RE r = new RE(patternStr);
String [] strArray = patternStr.split( "\\| ");
ArrayList list = new ArrayList();
for(int i = 0; i < strArray.length; i++) {
RE re = new RE(strArray[i]);
if(re.match(inputStr)) {
list.add(strArray[i]);
}
}
return list;
}
}