我需要形成正则表达式才能检查响应日志的输出。日志文件将始终根据输入而不同。因此,我想创建一个dynamic基于函数输入的正则表达式。
我可能需要一次传递可变数量的变量进行比较,那么如何在正则表达式中插入“或”因子?
是否可以在 Java 中创建这样的正则表达式,我应该如何去做?
是的,正则表达式只是一个字符串,您可以将用户输入连接到常量部分,然后从中创建一个模式。
如果您想按字面匹配用户输入,您应该使用Pattern.quote("UserString")
to 正则表达式转义 https://stackoverflow.com/questions/60160/how-to-escape-text-for-regular-expression-in-java it.
Example:
String UserInput = "Bar()";
String Prefix = "Foo";
Pattern p = Pattern.compile(Prefix + Pattern.quote(UserInput));
String s1 = "FooBar()";
String s2 = "FooBarNo";
String[] s = { s1, s2};
for (String a : s) {
Matcher m = p.matcher(a);
if (m.find())
System.out.println(a + " ==> Success");
else
System.out.println(a + " ==> Failure");
}
Output:
FooBar() ==> 成功
FooBarNo ==> 失败
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)