我需要编写简单的程序,它接受2个参数(RegEx模式和字符串),如果字符串不匹配,是否存在可以匹配模式的较大字符串(包含较小的字符串)。
示例1 输入:“^ \ w + \ s + \ w + $”和“hello”不匹配,但程序将返回'true',因为有字符串“hello word”包含第一个并匹配给定模式
例2 输入:“^(abc)* $”和“ca”不匹配,但程序将返回true,因为字符串ab ca bc(包含ca)与模式匹配。
简而言之,如果存在这样的字符串(true / false),程序需要回答。
C#(C ++,Java),任何帮助将不胜感激。至少有一些方向如何去做。
答案 0 :(得分:0)
问题在于你传递的正则表达式。
\
$
()
,[]
(abc)*
匹配abcabcabc,但[abc]*
将匹配a,b,c,ac,ab,aaa,bc,空在Java中(来自OP的评论:Java可以)
import java.util.regex.*;
public class RegExTest{
public static boolean check(String pat, String test){
return test.matches(pat);
}
public static void main(String[] args){
System.out.println(check("^\\w+\\s+\\w+$","hello"));
System.out.println(check("^[abc]*$","ca"));
}
}