结合使用REGEX和字符串插值 用于测试的正则表达式示例示例2

问题描述

我目前面临将regex查询传递给EF Core >=3.1中的FromSqlRaw方法的挑战。

FromSqlRaw将查询视为字符串插值。我希望它忽略这一点并按原样接受查询。

用于测试的正则表达式示例

^.*([a-z]\\s*){3,4}([0-9]\\s*){3}([a-z]?){1}[^$].*$

示例2

this.context.Mudal.FromSqlRaw(@"SELECT * FROM Mudal WHERE replace(BillRefNumber,' ','') regexp '^.*([a-z]\\s*){3,4}([0-9]\\s*){3}([a-z]?){1}[^$].*$';").ToList()

解决方法

您可以尝试使用参数化来传递正则表达式。请尝试以下操作:

string regexpression = @"^.*([a-z]\\s*){3,4}([0-9]\\s*){3}([a-z]?){1}[^$].*$";
var mylist = this.context.Mudal
   .FromSqlRaw(@"SELECT * FROM Mudal WHERE replace(BillRefNumber,' ','') regexp {0};",regexpression)
   .ToList();
,

我找到了一个理想的答案,我要做的就是将这个{1}更改为train_on_batch。这样可以避免字符串插值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...