pattern-matching相关内容

模式匹配选项时引用具有不兼容类型的匹配臂时引发错误

我对 Rust 还很陌生,无法理解这个令人困惑的错误. 我只是想匹配 HashMap 的 get 函数返回的 Option.如果返回一个值,我想增加它,否则我想向地图添加一个新元素. 代码如下: 让 mut map = HashMap::new();map.insert("a", 0);让 a = "a";匹配 map.get(&a) {一些(计数)=>*计数 += 1,无=>map ..
发布时间:2022-01-08 14:09:27 其他开发

如何识别拼写不同的相似词

我想从数据库中过滤掉重复的客户名称.一个客户可能有多个同名但拼写差异很小的系统条目.所以这是一个例子:一个名为 Brook 的客户可能有三个系统条目有了这种变化: 布鲁克·伯塔 布鲁克·伯塔 比鲁克·贝尔塔 假设我们将此名称放在一个数据库列中.我想知道识别这种重复形式的不同机制,比如 100,000 条记录.我们可以在 C# 中使用正则表达式来遍历所有记录或其他一些模式匹配技术,或 ..
发布时间:2022-01-07 15:28:29 C#/.NET

“x 为空"和“x 为空"有什么区别?和“x == null"?

在 C# 7 中,我们可以使用 if (x is null) return; 代替 if (x == null) return; 与旧方法相比,使用新方法(以前的示例)有什么优势吗? 语义有什么不同吗? 这只是品味问题吗?如果没有,我什么时候应该使用一个? 参考:C# 7.0 的新增功能. 解决方案 更新: Roslyn 编译器已更新,使两个运算符的行为在没有重载 ..
发布时间:2022-01-06 22:25:34 C#/.NET

在另一个文件中查找文件的模式并打印出后者的相应字段保持顺序

我已经尝试了一段时间来解决这个问题,我检查了很多帖子(例如这里 在一个文件中打印匹配另一个文件中的模式的行 或在这里 awk 搜索另一个文件中的字段),而没有真正找到我要找的东西.我需要使用 sed、grep、awk 等 bash 工具的解决方案(没有 python、R...) 我有两个文件(比那些文件大得多): 文件 1: 2 891299 0.50923964E-02 1248 ..
发布时间:2022-01-06 14:16:48 其他开发

匹配 As 后跟 egrep 中相同数量的 B

假设我想匹配具有完全相同数量的字符 A 和 B 的模式,以便正好有 n 个 A 后跟正好 n 个 B.例如,可以匹配以下字符串. AB AABB AAABBB 另一方面,这些字符串无法匹配 学士 AAAB AABBB ABAB 为了解决这个问题,我在考虑重复次数,所以我的尝试看起来像这样 egrep 'A{n}B{n}' 当然,但是,大括号内的重复次数 n 不 ..
发布时间:2022-01-06 14:14:40 服务器开发

仅显示 grep 的第 n 个匹配项

onefish一只鸡双鱼两只鸡两只母牛三只鸡 如果我想 grep 包含“two"的行,但我只想要第二个匹配怎么办.所以我想要结果“twochicken". 解决方案 试试这个: awk '/two/{i++}i==2' 文件 使用您的数据: kent$ echo "onefish一只鸡双鱼两只鸡两只母牛三只鸡"|awk '/two/{i++}i==2'两只鸡 注意:如果您的文件很 ..
发布时间:2022-01-06 13:31:00 其他开发

解决枚举上不完整的模式匹配

在模式匹配时,是否有任何创造性的方法来解决 .NET 的“弱"枚举?我希望它们的功能类似于 DU.这是我目前的处理方式.有什么更好的想法吗? []模块枚举 =让意外>(值:'a):'c =//'failwithf“意外的枚举成员:%A:%A" typeof价值//'匹配值|ConsoleSpecialKey.ControlC - ..
发布时间:2022-01-05 10:26:57 其他开发

如何在“let"定义中使用模式匹配?

我刚刚注意到 F# 允许我使用 let 绑定与文字和其他模式,如下所示: 让 fib 0 = 1让存在项 [] = false让车 (hd :: tl) = hd让 cdr (hd :: tl) = tl F# 正确地将这些函数解释为一种模式匹配,因为给了我以下警告: 警告 1 不完整的模式匹配在这个表情上.例如,值“1"不会是匹配 警告 2 不完整的模式匹配在这个表情上.例如,值 ..
发布时间:2022-01-05 10:23:10 其他开发

f# 模式与类型匹配

我正在尝试递归打印出所有对象属性和子类型属性等.我的对象模型如下... typeSuggestedFooWidget = {值:浮动;hasIncreasedSinceLastPeriod: bool ;}类型firmIdentifier = {公司 ID:整数;公司名称:字符串;}类型authorIdentifier = {作者 ID:整数;作者姓名:字符串;公司:firmIdentifier ..
发布时间:2022-01-05 10:21:49 其他开发

完整模式匹配的编译时约束

我正在寻找不完整模式匹配的警告编号.有人知道这是什么吗? 更完整地说,我想让 FSC.EXE 返回不完整的模式匹配作为编译时错误而不是警告 + 运行时异常.有谁知道这个警告号码是多少?具体来说,这与编译的 .fs/交互式 FSI .fsx REPL 交互有关. 警告: 此表达式上不完整的模式匹配.例如,值“LaLaLa (_)"可能表示模式未涵盖的情况. 如何定制: 见“-- ..
发布时间:2022-01-05 09:55:56 其他开发

解释模式匹配与开关

我一直试图向几个人解释 switch 语句和模式匹配 (F#) 之间的区别,但我真的无法很好地解释它......大多数时候他们只是看着我说“那你为什么不直接使用 if..then..else". 你会如何向他们解释? 编辑!感谢大家的精彩答案,我真的希望我可以标记多个正确的答案. 解决方案 我以前是“那些人"中的一员,我不知道有没有一种简洁的方式来总结为什么模式匹配是如此美味. ..
发布时间:2022-01-05 09:49:20 其他开发

Python 正则表达式:标记英语缩写

我试图以分离出所有单词组件的方式解析字符串,即使是那些已经收缩的组件.例如,“不应该"的标记化将是 ["should", "n't"]. nltk 模块似乎不能胜任这项任务: “我不会那样做." 标记为: ['我', "不会", "'已经", '完成', '那个', '.'] “would't've"所需的标记化是:['would', "n't", "'ve"] ..
发布时间:2022-01-02 17:35:07 Python

语言检测是如何工作的?

一段时间以来,我一直想知道 Google 翻译(或假设的翻译器)如何从“来自"字段中输入的字符串中检测语言.我一直在思考这个问题,我唯一能想到的就是在输入字符串中寻找一种语言所独有的词.另一种方法可能是检查除了关键字之外的句子形成或其他语义.但考虑到不同的语言及其语义,这似乎是一项非常艰巨的任务.我做了一些研究,发现有一些方法可以使用 n-gram 序列并使用一些统计模型来检测语言.也希望得到高水 ..
发布时间:2022-01-02 17:31:08 其他开发

Scala 使用模式匹配获取列表的第一个和最后一个元素

我正在对列表进行模式匹配.无论如何我可以访问列表的第一个和最后一个元素进行比较? 我想做类似的事情.. case List(x, _*, y) if(x == y) =>真的 或 case x :: _* :: y => 或类似的东西...其中 x 和 y 是列表的第一个和最后一个元素.. 我该怎么做……有什么想法吗? 解决方案 使用标准 :+ 和 +: 来自 ..
发布时间:2022-01-02 14:06:13 其他开发

使用 scala 模式匹配而不是 java switch case 的优点是什么?

每个人都说模式匹配是函数式语言的一个很好的特性.为什么? 我不能简单地使用 ifs 和 switch case 来处理所有事情吗? 我想了解使用模式匹配代替常规过程编程 ifs 和 switch case 的优势 解决方案 我首先要指出的是,您不使用模式匹配“代替"switch 语句.Scala 没有 switch 语句,它有的是匹配块,里面的 case 表面上看起来非常类似于 ..
发布时间:2022-01-02 14:05:55 Java开发

我使用 Lua 5.1.我想解析以下模式的 XML 文件.我该怎么办?

我尝试使用 LuaXml 库.但是它的功能是有限的,因为它只返回特定属性的第一个子表,并且不会更进一步.然后我尝试了字符串模式匹配,它奏效了,但我走到了死胡同,它无法完全完成任务.LuaExpat 库存在于我的 lua 的 lib 文件夹中,还有一个名为 lom.lua 的文件.但通常它不起作用或给我“找不到模块"的错误 我的 XML 文件如下所示: ..
发布时间:2021-12-30 20:31:27 其他开发

不区分大小写的 Lua 模式匹配

我正在为运行 Windows CE 6/7 的移动设备编写 Lua 中的 grep 实用程序,但在实现不区分大小写的匹配模式时遇到了一些问题.由于字符类的原因,将所有内容转换为大写(或小写)的明显解决方案并不那么简单. 我唯一能想到的就是将模式本身中的文字转换为大写. 这是我目前所拥有的: 函数 toUpperPattern(instr)-- 检查第一个字符如果 string.fin ..
发布时间:2021-12-30 20:23:01 其他开发