Java 如何使用正则表达式在数据表中查找名称
目前我正在使用一个regex函数,它只与第一个单词进行比较。例如,名字是“约翰·戴夫”。如果我搜索关键字“John”,它将正确返回结果为John Dave。但如果我搜索“Dave”就找不到了。 这是我目前正在使用的函数。我想更新函数以与全名进行比较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
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的另一种方法,但重点放在您提到的示例中。