问题标签 [string-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 投票
2 回答
1203 浏览

c# - 正则表达式无法匹配字符串

我在下面有一段代码,我试图用它来匹配中间可以更改的字符串的开头和结尾。我首先试图让这个例子工作,有人可以告诉我这个代码的错误以及为什么它根本不匹配。

0 投票
2 回答
3435 浏览

algorithm - 多列信息的模糊记录匹配

我有一个有点高水平的问题,所以我会尽量具体。

我正在进行大量研究,涉及将不同的数据集与引用同一实体(通常是公司或金融证券)的标题信息相结合。这种记录链接通常涉及标题信息,其中名称是唯一常见的主要标识符,但通常可以使用一些辅助信息(例如城市和州、操作日期、相对大小等)。这些匹配通常是一对多的,但也可能是一对一的,甚至是多对多的。我通常是手动完成这种匹配,或者对已清理的子字符串进行非常基本的文本比较。我偶尔会使用一个简单的匹配算法,比如 Levenshtein 距离测量,但我没有从中得到太多,部分原因是我没有一个好的正式的应用方法。

我的猜测是,这是一个相当普遍的问题,并且必须已经开发了一些正式的流程来完成此类事情。我已经阅读了一些关于该主题的学术论文,这些论文涉及给定方法的理论适用性,但我还没有找到任何好的资源来介绍配方或至少是一个实用的框架。

我的问题如下:

  • 有谁知道实现多维模糊记录匹配的良好来源,例如书籍或网站或已发表的文章或工作论文?

  • 我更喜欢有实际例子和明确方法的东西。

  • 该方法可以是迭代的,在中间阶段进行人工检查以进行改进。

  • 编辑)链接数据用于统计分析。因此,一点点噪音是可以的,但是对于更少的“不正确匹配”而不是更少的“不正确的不匹配”有强烈的偏好。

  • 如果他们在 Python 中,那就太棒了,但不是必需的。

最后一件事,如果重要的话,是我不太关心计算效率。我没有动态实现这一点,我通常处理几千条记录。

0 投票
1 回答
207 浏览

algorithm - 匹配数据的算法

我有一个项目,我正在测试一种对噪声非常敏感的设备(电磁、无线电等)。该设备基于给定的输入(音频)每秒生成 5-6 字节的二进制数据(对于未经训练的人来说看起来像是胡言乱语)。

根据噪声,有时设备会丢失字符,有时会插入随机字符,有时会同时插入多个字符。

我编写了一个应用程序,使用户能够即时查看它生成的错误(与主文件相比[例如设备在理想条件下应输出的内容])。我的算法基本上采用实时数据中的每个字节,并将其与已知主文件中相同位置的字节进行比较。如果字节不匹配,我将在当前位置的两个方向都有一个 10 个字符的窗口,我将在其中寻找附近的匹配项。如果匹配(加上一两个验证),我会在 UI 中直观地标记位置并记录错误。

这种方法工作得相当好,实际上,考虑到传入数据的速度,它也可以实时工作。但是,我觉得我所做的并不是最优的,如果数据以更高的速率传输,这种方法就会崩溃。

我可以采取其他方法吗?这种类型的东西有已知的算法吗?
多年前我读到美国宇航局的数据收集设备(例如,与太空和月球/火星上的飞行器通信的设备)尽管受到太空的巨大干扰,但数据丢失了 0.00001%。

有任何想法吗?

0 投票
2 回答
196 浏览

ruby - Ruby 正则表达式匹配帮助

这只是一个普遍的“我的正则表达式有什么问题,它没有提取出我所期望的一切”的问题。

这是我的字符串:

我希望能够拉出时代"0900-1600""1700-2000"

这是我的正则表达式/([0-9]{4}-[0-9]{4})/,虽然它在查找时间的第一次出现时效果很好,但它不会返回与第二次匹配的匹配项。有人能告诉我为什么吗?

这是我记录的实际代码片段:

0 投票
9 回答
163572 浏览

postgresql - 如何在所有表(PostgreSQL)中搜索特定值?

是否可以在每个表的每一列中搜索PostgreSQL 中的特定值?

Oracle有一个类似的问题

0 投票
3 回答
14317 浏览

perl - perl 读取文件并获取特定行

我有一个文本文件,我想获取以模式开头并以特定模式结束的特定行。例子:

还应打印开始图案和结束图案。我的第一次尝试并没有真正成功:

在此先感谢您的帮助。

0 投票
3 回答
2672 浏览

algorithm - Aho-Corasick 和适当的子串

我试图理解 aho-corasick 字符串匹配算法。假设我们的模式是abcdbc。我们最终得到一棵这样的树

虚线表示失效函数。

现在假设我们输入字符串abcd。这将跟随树并检测匹配“abcd”,但是,据我所知,bc不会报告匹配。我误解了算法吗?

0 投票
6 回答
1494 浏览

php - 将数组的值与字符串 PHP 匹配

我正在做一个小项目,我需要一些帮助。我有一个包含 150,000 行的 CSV 文件(每行有 10 列数据)。我正在使用 fscvread 读取文件,并且在循环期间,我想将每行的其中一列(称为 stringx)与 10,000 个单词的数组进行匹配。如果 stringx 中存在 10,000 个单词中的任何一个,则使用 preg_replace 将其删除。

现在这一切都很好。我的一切工作正常,但问题是,它太慢了。

我尝试了 2 种方法来匹配数组。1)我使用explode(“”,$stringx)将stringx转换为数组,然后使用array_diff($array_stringx,$array_10000);2) 在 $array_10000 上使用 foreach 并在 $stringx 上使用 preg_replace

方法 1 大约需要 60 秒来遍历 200 行数据,方法 2 可以在 60 秒内循环 500 行。

有一个更好的方法吗?

再一次,我正在寻找一种有效的方法来(基本上)array_diff 一个包含 10,000 个单词的数组,一次针对 150,000 个字符串。

非常感谢您的帮助。

0 投票
3 回答
10543 浏览

c - Boyer Moore 算法实现?

C 中是否有 Boyer-Moore 字符串搜索算法的工作示例?我查看了一些网站,但它们看起来很糟糕,包括维基百科。

谢谢。

0 投票
5 回答
726 浏览

java - 使用 java ,有哪些方法可以在字符串中查找单词?

如果我有一个字符串 str 是:a>b
查找字符串 str 是否有一个的最佳方法是什么>?我使用:

delimiter =">"
str.split(delimter)

或者

str.contains(">")

还是正则表达式?实际上我更喜欢使用正则表达式,在这种情况下如何使用正则表达式?

谢谢您的帮助