日期:2014-05-20  浏览次数:20596 次

带*的字符串匹配问题?
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;
}
}