问题标签 [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 投票
1 回答
1252 浏览

java - 在 DAWG 而不是 Trie 上使用 Aho-Corasick

有人知道是否可以修改 Aho-Corasick 字符串匹配算法以用于 DAWG(有向无环词图)而不是 Trie 吗?

0 投票
2 回答
1905 浏览

python - 正则表达式匹配 'lol' 到 'lolllll' 和 'omg' 到 'omggg' 等

嘿,我喜欢正则表达式,但我根本不擅长它们。

我有一个大约 400 个缩写词的列表,例如 lol、omg、lmao 等。每当有人键入这些缩写词中的一个时,它就会被其英文对应词替换([笑声],或类似的东西)。无论如何,人们很烦人,并在最后一个字母重复 x 次的情况下键入这些速记词。

示例:omg -> omgggg,lol -> lollll,haha -> haha​​haha,lol -> lololol

我想知道是否有人可以将正则表达式(最好是在 Python 中)交给我来处理这个问题?

谢谢大家。

(如果有人好奇,这是一个与 Twitter 相关的主题识别项目。如果有人发推文“我们去打篮球”,你怎么知道推文是关于篮球的,等等)

0 投票
3 回答
573 浏览

python - 有没有办法通过python中的正则表达式找到子字符串索引?

我想找到一个子字符串的索引位置,但是子字符串很长并且难以表达(多行,甚至你需要转义它)所以我想使用正则表达式来匹配它们,并返回子字符串的索引,函数就像str.find 或 str.rfind ,是否有一些包帮助?

0 投票
4 回答
340 浏览

python - 匹配两个通配符字符串的优雅方式

我正在对来自两个不同来源的一些文本进行 OCR。他们每个人都可能在不同的地方犯错,他们无法识别一个字母/一组字母。如果他们无法识别某些内容,则将其替换为 ?。例如,如果单词是Roflcopter,则一个来源可能会返回Ro?copter,而另一个来源可能会返回Roflcop?er。我想要一个函数来返回两个匹配项是否相等,允许多个?s. 例子:

到目前为止,我可以使用正则表达式将一个 OCR 与一个完美的 OCR 匹配:

但是当他们都在不同的地方都有 ?s 时,这不起作用:

0 投票
1 回答
204 浏览

.net - 如何搜索键盘上没有字符的字符串(非英语)?

我有一个搜索表单,我希望我的用户能够输入非英文字符的等效英文字符。

例如。要找到Ælfred,用户可以搜索“Ælfred”或“AElfred”。
搜索也应该不区分大小写,因此“aelfred”可以工作。
我也让它搜索,默认情况下,它匹配字符串的开头,因此搜索“Æ”或“AE”甚至“A”将在结果中包含Ælfred。

需要考虑其他转换,例如 ê -> e、å -> a。

我正在使用带有 SQL 后端的 ASP.NET。是否有任何标准库可以帮助进行这种搜索?

0 投票
8 回答
270547 浏览

regex - 正则表达式允许字符串仅包含数字 0 - 9 并将长度限制为 45

我正在尝试创建一个正则表达式以使字符串仅包含0-9作为字符,并且它的长度必须至少为 1 个字符且不超过45. 所以例子将00303039是一个匹配,而039330a29不是。

到目前为止,这就是我所拥有的,但我不确定它是否正确

我也试过

但这似乎也不起作用。我对正则表达式不是很熟悉,所以任何帮助都会很棒。谢谢!

0 投票
1 回答
419 浏览

javascript - Javascript字符串匹配与for循环

我有一个 extjs 网格,其中一个列渲染器函数有一个 for 循环,该循环遍历一个数字数组并将它们与所考虑列的每个单元格的值进行比较。所以我在想,因为渲染器已经为每一行循环,现在我有每一行的循环运行器。

问题是应该让它运行还是应该更改数组和用户 String.match() 而不是 for 循环。

我现在没有大数据,所以我可以测试。哪个更好?有任何想法吗?。

谢谢,杰

0 投票
2 回答
412 浏览

language-agnostic - 评估字符串匹配的质量

将模式与一组字符串逐个进行比较,同时评估模式与每个字符串匹配的数量的最佳方法是什么?在我对正则表达式的有限经验中,使用正则表达式将字符串与模式匹配似乎是一个非常二元的操作......无论模式多么复杂,最终,它要么匹配要么不匹配。我正在寻找更强大的功能,而不仅仅是匹配。是否有与此相关的良好技术或算法?

这是一个例子:

假设我有一个模式foo bar,我想从以下字符串中找到最匹配它的字符串:

现在,这些都不匹配模式,但哪个不匹配最接近匹配?在这种情况下,foo bax将是最佳选择,因为它匹配 7 个字符中的 6 个。

抱歉,如果这是一个重复的问题,当我查看这个问题是否已经存在时,我真的不知道要搜索什么。

0 投票
3 回答
832 浏览

python - 找到距离目标字符串 N 个字符长度最小的“N Gram”子字符串

我正在寻找一种算法,最好是在 Python 中,它可以帮助我找到最接近目标字符串 N 个字符长的现有字符串的子字符串(N 个字符长)。

考虑目标字符串,即 4 个字符长,为:

假设这是我可以使用的字符串(我将生成它的子字符串以进行“最佳对齐”匹配):

上述 4 个字符长的子字符串:

我想编写/使用一个“魔术函数”来选择最接近 targetString 的字符串:

更多示例:

这个“魔术函数”是一个众所周知的子字符串问题吗?

我真的很想找到分钟。nonEmptySubStrings 中的更改次数,以便它将 targetString 作为子字符串。

0 投票
1 回答
2576 浏览

python - Django 模型外键字段匹配

我有以下 Django 模型 -

现在在我的views.py 中,我想对XX字段y.disp_name 中的所有项目进行部分字符串匹配。

通常一个人会这样做 -M.objects.filter(disp_name__istartswith='string')

但是这里M有一个外键Model XX。所以如果我这样做,XX.objects.filter(y.disp_name__istartswith='string')我会得到一个错误。

此外,这也失败了 - u = User.objects.get(id=1) u.xx_set.filter(y.disp_name__istartswith='string')

我得到的例外是 -SyntaxError: keyword can't be an expression (<console>, line 1)

这个怎么做?