我正在尝试在以下字符串中找到“string”一词,并忽略其间的任何特殊字符。 如,
String s =“这是一个示例字符串。在这个st @ ring中我想搜索我的s%#tring”;
结果应为“3场比赛”: 串 串 S(%)#特林
应该忽略这些字符@%#
答案 0 :(得分:1)
你可以用这个:
s[^string]*?t[^string]*?r[^string]*?i[^string]*?n[^string]*?g
答案 1 :(得分:1)
好像你想要这样的东西,
\bs[^A-Za-z0-9\s]*?t[^A-Za-z0-9\s]*?r[^A-Za-z0-9\s]*?i[^A-Za-z0-9\s]*?n[^A-Za-z0-9\s]*?g\b
[^A-Za-z0-9\s]
匹配任何字符,但不匹配字母数字或空格字符。
Java代码将是,
String s = "this is a sample string. In this st@ring I would like to search my s%#tring";
Pattern regex = Pattern.compile("\\bs[^A-Za-z0-9\\s]*?t[^A-Za-z0-9\\s]*?r[^A-Za-z0-9\\s]*?i[^A-Za-z0-9\\s]*?n[^A-Za-z0-9\\s]*g\\b");
Matcher matcher = regex.matcher(s);
while(matcher.find()){
System.out.println(matcher.group(0));
}
<强>输出:强>
string
st@ring
s%#tring