Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用正则表达式在数据表中查找名称_Java_Javascript_Regex_Validation - Fatal编程技术网

Java 如何使用正则表达式在数据表中查找名称

Java 如何使用正则表达式在数据表中查找名称,java,javascript,regex,validation,Java,Javascript,Regex,Validation,目前我正在使用一个regex函数,它只与第一个单词进行比较。例如,名字是“约翰·戴夫”。如果我搜索关键字“John”,它将正确返回结果为John Dave。但如果我搜索“Dave”就找不到了。 这是我目前正在使用的函数。我想更新函数以与全名进行比较 criteria.and("vehicle_info.veh_reg_no").regex("^" + sb.getVehicle_reg(), "i"); 提前感谢此正则表达式:“^”+sb.getVehicle\u reg()将导致用户名为J

目前我正在使用一个regex函数,它只与第一个单词进行比较。例如,名字是“约翰·戴夫”。如果我搜索关键字“John”,它将正确返回结果为John Dave。但如果我搜索“Dave”就找不到了。 这是我目前正在使用的函数。我想更新函数以与全名进行比较

criteria.and("vehicle_info.veh_reg_no").regex("^" + sb.getVehicle_reg(), "i"); 

提前感谢

此正则表达式:
“^”+sb.getVehicle\u reg()
将导致用户名为
John
^John
。这意味着正则表达式引擎将从一开始就开始匹配字符串,这就是为什么
John Dave
将被
^John
匹配,而不是
^Dave
匹配的原因

要使其搜索整个字符串,只需删除前面的额外
^
即可获得如下内容:
sb.getVehicle\u reg()
。这将查看整个字符串。

删除“^”字符,可以使用:

r = new RegExp('Dave', 'i')
r.test('John Dave')

这将返回:
true

^
标记字符串的开头,因此后面的内容前面不能有任何内容。另外,如果要搜索文本字符串,为什么要使用正则表达式呢?我更改了函数,但仍然不起作用<代码>标准和(“被保险人姓名”).regex(sb.getInsured_name(),“i”)这一个是否会执行相同的
标准和(“被保险人姓名”).regex(sb.getInsured_name(),“i”)是的,这只是使用RegExp的另一种方法,但重点放在您提到的示例中。