草庐IT

regex - 数字类型字段的 Mongoose find() RegExp

我尝试创建一个带过滤器的表,当我需要通过正则表达式查找行时,出现以下错误。我如何将RegExp与字段类型Number一起使用?更改字符串的字段类型,是个好主意吗?varContractSchema=newSchema({userId:{type:Schema.Types.ObjectId,ref:'User'},number:Number,//...});module.exports=mongoose.model('Contract',ContractSchema);Contract.find({number:/555/},function(err,contracts){console

javascript - 为什么这个 RegExp 查询返回所有结果?

我有一个MongoDB3.2服务器。我的收藏包含如下文档:{"name":"string","explicitMods":["+48toBlah","-13%toBlah","12to18toBlah"]}如果我这样写:myCollection.find({"explicitMods":/badstring/})如预期的那样,我得到零结果。但是如果我这样写:myCollection.find({"explicitMods":/\d+to\d+/})我得到了集合中的所有文档。这是出乎意料的,因为我实际上想要包含12到18等子字符串的文档。如果我将正则表达式更改为/\d+到\d+z/它正确

php - 如何在 MYSQL 中使用 REGEXP 来匹配数组中的日期?

我试图匹配很多年表的publication_date中的年份。我正在使用Laravel(PHP)。我写过这样的东西:if($this->request->has('publication_years')){$years=implode('-[0-9]{2}-[0-9]{2}|',explode(',',$this->request->get('publication_years'))).'-[0-9]{2}-[0-9]{2}';$model=$model->whereExists(function($query)use($years){$query->select(DB::raw(1)

mysql - 如何在 MySQL 中使用 RLIKE/REGEXP 模式 .*

问题:从STATION中查询以元音字母(即a、e、i、o和u)作为第一个和最后一个字符的城市名称列表。您的结果不能包含重复项。我找到了@Mureinik编辑的答案,(谢谢!很有帮助!)SELECTDISTINCTCITYFROMSTATIONWHERECITYRLIKE'^[aeiouAEIOU].*[aeiouAEIOU]$';我很困惑,问题是问他们的第一个和最后一个字符是aeiou,为什么我不能只使用CITYRLIKE'^[aeiouAEIOU][aeiouAEIOU]$'但是,当我取出.和*,则显示错误答案。为什么我们需要使用.和*在这个问题中?做。和*总是一起使用?还有一个问题

MySql,在带有正则表达式的段落中查找

对不起我的英语。我正在尝试使用正则表达式通过此查询查找文本:SELECT*FROMp_postswhereTextREGEXP'[[::]]'andTextREGEXP'[[::]]'andTextREGEXP'[[::]]'andTextREGEXP'[[::]]'一切正常。但是现在我需要找到记录,这些词在一个段落中。例如,如果单词Liberty和数字22不在一个段落中,则此记录无效。请帮忙。谢谢。 最佳答案 这对于MySQL正则表达式来说会很棘手,因为您既没有环视也没有非贪婪匹配。我建议您根据段落分隔符拆分字符串,然后在段落字符

mysql - 在 MariaDB 中使用 REGEXP_REPLACE 进行正则表达式查找和替换的正确语法是什么?

我需要对名为post的MySQL表中名为message的列运行正则表达式查找和替换。我的数据库运行的是MariaDB10。根据docs,MariaDB10有一个新的REGEXP_REPLACE函数专门用来做这个,但我似乎无法弄清楚实际的语法。它将影响280,000行,因此理想情况下,还有一种方法可以在我测试它时将其限制为一次仅更改一个特定的行,或者只是执行SELECT而不是UPDATE直到我确定它可以满足我的要求。我要运行的正则表达式:\[quote\sauthor=(.+)\slink=[^\]]+]替换字符串:[quote="$1"]以下是我尝试过的,但它只是抛出一个SQL错误:U

mysql - 在包含 ColdFusion 变量的 MySQL 查询中使用 "like"运算符

我正在构建一个“相关资源”页面,用于在我们的图书馆中搜索与特定飞机有关的论文。如果访问者正在研究XV-1,我想找到所有标题中包含名称“XV-1”的论文。但我不想找到任何关于XV-15的论文。飞机名称是一个ColdFusion变量,我们使用的是MySQL。我现在用的是什么:WHEREtitleLIKE这会按预期返回“XV-1的转子系统”,但也会返回我们不想要的“使用RotCFD预测孤立的XV-15转子性能”。我认为,如果我可以查询飞机名称,不允许紧随其后的任何数字字符,但允许其他字符,如撇号或逗号,那可能会起作用。不过,我试过了'%#trim(aircraftDesignation)#[

mysql - MySQL 的 REGEXP 无法正常工作

如果我想在name字段中搜索字符串léon的所有数据,我使用这样的查询:SELECT*FROM`my_table`WHERE`name`REGEXP'léon'这个请求是可以的。现在,我需要检索所有包含字符串léon或leon或lèon的行,所以我尝试了:SELECT*FROM`my_table`WHERE`name`REGEXP'l[éeè]on'此查询无效...我没有错误,但没有结果。你有什么想法吗? 最佳答案 MySQL的正则表达式don'tworkreliablywithmultibytecharactersets.但是,如

mysql - 如何使用 RegExp 在 MySQL 中创建阿拉伯字符类?

例如我想创建一个类字符,aradigit[٩-٠]..contentalldigits.对应的Unicode是[U+0660-U+0669],我试过这个:Select*FROMemployeesWHEREIDREGEXP[\u{0660}-\u{0669}];我收到这个错误#1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'[\u{0660}-\u{0669}]LIMIT0,25'atline1"

php - 语法错误或访问冲突 : 1139 Got error 'empty (sub)expression' from regexp

我有这个正则表达式:REGEXP'(^0+|0+)17198671(0+|$)$'需要匹配这样的字符串US0017198671000171986710000000000000001719867100000000基本上我需要的是,如果字符串中有所有相同的数字替换零并以零结尾或什么都没有,我想匹配它们。我不明白为什么这个有效的正则表达式不适用于MySQL 最佳答案 MySQL正则表达式引擎不允许空替代,例如ab(c|)或a|。(0+|$)部分匹配输入字符串末尾的1+个零或空字符串,这会导致错误。请注意(^0+|0+)意味着一个或多个零不