问题标签 [pattern-matching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8439 浏览

c# - Linq 模式匹配

我正在使用正则表达式来匹配模式,例如在以下示例中我正在匹配字符串以计算元音。

1) 在不使用正则表达式的情况下,C# 是否提供任何匹配模式的构造?

2)为了对字符串计数单个字符,我需要派生自己的方法吗?

0 投票
5 回答
78022 浏览

scala - 在 Scala 的模式匹配系统中使用比较运算符

是否可以使用 Scala 中的模式匹配系统进行比较?例如:

第二个 case 语句是非法的,但我希望能够指定“当 a 大于时”。

0 投票
6 回答
10715 浏览

php - 数组键上的模式匹配

我需要从这个数组中获取股票值:

我需要在这个数组上进行模式匹配,其中数组键 = "stock" + 1 个通配符。我曾尝试使用数组过滤器函数来获取 PHP 手册中的所有其他值,但空值似乎将其丢弃。我尝试了很多不同的东西,但没有任何效果。

这可以做到吗?

0 投票
5 回答
27881 浏览

haskell - Haskell中的模式匹配字符串前缀

假设我想为匹配以字符“Z”开头的字符串的函数创建一个特殊情况。我可以通过执行以下操作轻松地使用模式匹配来做到这一点:

但是如果我想匹配带有更长前缀的字符串呢?假设我想对以单词“toaster”开头的字符串有一个特殊的情况。编写模式以匹配这样的字符串的最佳方法是什么?

0 投票
3 回答
1803 浏览

f# - 测试序列中所有项目是否相同的表达式

F# 中是否有多个实例模式?

考虑一下我正在处理一个列表。我有以下模式匹配

换句话说,传递 [] 或 [1] 应该简单地返回列表,因此应该 [1;1;1;...] 但我不知道如何模式匹配最后一个模式。这可能吗?或者有没有更好的方法可以使用?我在任何地方都没有发现任何关于重复模式的信息。

0 投票
4 回答
3522 浏览

php - 正则表达式 PHP,将所有链接与特定文本匹配

我正在寻找 PHP 中的正则表达式,它将锚点与特定文本匹配。例如,我想获得带有文本 mylink 的锚点,例如:

所以它应该匹配所有的锚,但前提是它们包含特定的文本所以它应该匹配这些字符串:

但不是这个:

因为这个不包含单词mylink。

这个也不应该匹配:"mylink is string"因为它不是锚。

有人有什么想法吗?

感谢花岗岩

0 投票
3 回答
319 浏览

regex - 自动查找文件名中的编号模式

介绍

我在有显微镜的设施工作。可以要求这些人生成样本的 4D 电影:他们在不同的 Z 位置拍摄例如 10 张照片,然后等待一定的时间(下一个时间点)并再次拍摄 10 张切片。可以要求他们为每个切片保存一个文件,并且他们使用明确的命名模式,例如2009-11-03-experiment1-Z07-T42.tif. 文件名编号以反映 Z 位置和时间点

问题

获得所有这些文件名后,如果您知道文件名的主干模式,就可以使用regex模式来提取 Z 和 T 值。这个我知道该怎么做。

我的问题是:你知道一种从文件名列表中自动生成正则表达式模式的方法吗?例如,网上有一个很棒的工具可以做类似的事情:txt2re

您将使用什么算法来解析所有文件名列表并生成最可能的正则表达式模式?

0 投票
3 回答
685 浏览

erlang - Erlang 模式与别名匹配

是否有可能在函数定义中匹配一个 touple 的某个子集并且仍然在方法中获得完整的 touple ?

我想做的是这样的:

代替:

我希望这足够清楚。

谢谢。

0 投票
3 回答
203 浏览

php - 有什么方法可以更快地提取字符串?

我需要提取 HTTP 请求的虚拟主机名。由于这将为每个请求完成,我正在寻找最快的方法来做到这一点。

以下代码和时间只是我研究过的一些方法。

那么,有一些更快的方法可以做到这一点吗?

结果时间:

0 投票
1 回答
2932 浏览

f# - F# 字符串模式匹配与通配符

作为项目的一部分,我将自己指定为提高我对 F# 和函数式编程的一般知识的一种方式,我正在尝试从头开始编写字符串模式匹配算法,而不使用任何循环或变量(或正则表达式或字符串.替换和朋友)。由于这纯粹是一个学习项目,我对最好的方法不感兴趣,只对最好的功能方法感兴趣。

我正在尝试编写一个接受通配符、模式字符串和输入字符串作为参数的函数。如果模式与输入不匹配,则函数返回None. 如果模式与输入匹配,则该函数返回输入字符串Some(str)str任何部分与模式字符串中可能存在的任何通配符匹配的位置。

我大部分时间都在工作,稍后我会包含代码。我编写了一个通用模式匹配函数,它适用于任何支持相等的通用列表,然后是一个辅助函数,它接受字符串并将字符列表传递给通用函数。这一切都有效,除了一件事:模式字符串中对多个通配符的支持不是很好 - 它获取每个通配符的匹配项并将它们连接到输出中的单个字符串中。

例如:

这是我要修复的最后一个。理想情况下,我想返回一个字符串列表而不是单个字符串,列表中的每个元素都是与一个通配符匹配的字符串。如果做不到这一点,我可能会使用只返回第一个通配符匹配的版本 - 这是我需要摆脱的两个通配符的连接值。我只是不太确定如何处理它。

因此,如果有人可以建议我如何根据它们匹配的通配符对返回值进行分组,我将不胜感激。我也对您可能想要建议的对我的代码的任何其他改进感兴趣。

您可能已经猜到了,但这是 F# 中 Eliza 聊天机器人实现的一部分。