草庐IT

regexp_substr

全部标签

php - PHP 中 mongodb 中的 Substr 聚合

我有以下命令行mongodb查询:db.getCollection('Data').aggregate([{'$project':{"_id":"$_id","g":"$g","value":{'$substr':["$g",0,4]},}}])这个查询的结果是:{"result":[{"_id":NumberLong(1),"g":"1383,09,1,2000","value":"1383"},{"_id":NumberLong(2),"g":"1499,06,1,1","value":"1499"},],"ok":1.0000000000000000,"$gleStats":{"

MongoDB:使用 $substr 添加基于现有字段的新字段

我有一个像下面这样的简单集合>db.test.save({first:"Ab"})>db.test.find(){"_id":ObjectId("518a1524f635dc8bb092e1ac"),"first":"Ab"}我想添加一个名为“fl”的新字段,它包含字段“first”的第一个字母。我试过了>db.test.update({},{"$set":{"fl":{"$substr":["$first",0,1]}}})notokForStorage但如您所见,我收到异常“notokForStorage”。有什么建议和解决方法吗? 最佳答案

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/它正确

Mongodb 使用 $substr 按字段分组

我有一个按文件名分组的查询。有点像db.images.aggregate([,{$group:{_id:{$substr:["$FileName",3,-1]},files:{$push:"$$ROOT"}}},{$sort:{UploadDate:-1}}])我需要在substring函数中将起始索引设置为第一个匹配符号“_”。类似于"$FileName.indexOf('_')"。谁能帮帮我? 最佳答案 有一个基于此链接的肮脏但有效的解决方案http://www.kamsky.org/stupid-tricks-with-mon

oracle 中的substr()函数详解

1.substr函数格式(俗称:字符截取函数)格式1:substr(stringstring,inta,intb);格式2:substr(stringstring,inta);解析:格式1:1、string需要截取的字符串2、a截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)3、b要截取的字符串的长度格式2:1、string需要截取的字符串2、a可以理解为从第a个字符开始截取后面所有的字符串。文章目录1.substr函数格式(俗称:字符截取函数)2.实例解析3、实例截图:3、完整函数实例格式1:2.实例解析格式1:selectsubstr('HelloWorld',0,3)v

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]$'但是,当我取出.和*,则显示错误答案。为什么我们需要使用.和*在这个问题中?做。和*总是一起使用?还有一个问题

php - 阿拉伯语 echo substr 它给了我?我的数据末尾的标记已被回显

这个问题在这里已经有了答案:phpsubstr()functionwithutf-8leaves�marksattheend(7个答案)关闭8年前。我正在使用php和mysql,我想回显第一行的部分数据我使用了命令:它将从$row文本中获取500个字符,但在末尾?出现。我使用的是阿拉伯文本,这可能是原因。由于阿拉伯语文本相互连接可能没有结束,这就是为什么当它在相互连接时中断,如果保持连接,它将超过500个字符,所以我得到了?我怎样才能修复它,使问号不出现在末尾?

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

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

mysql - 在 MySQL 中,SUBSTRING(1, 200) 是否比获取 TEXT 列的完整值更好?

假设您的表格上有一个TEXT列,它可能是巨大的/段落长的咆哮,或者只有几句话的长行。性能明智/服务器负载明智,这样做更好吗:SELECTSUBSTRING(myTxtColumn,1,200)FROMmyTableASmyTxtColumn或者做:SELECTmyTxtColumnFROMmyTable哪些查询会给服务器带来更多负载?我很好奇服务器获取列的全部值是否比对其执行SUBSTRING()更容易,或者SUBSTRING()是否更容易,因为它只返回前200个字符而不是比几个KB长文本值。 最佳答案 我会谨慎行事并使用子字符串。