问题标签 [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.
bash - 如何使用定义层次结构的匹配前缀 (LCS) 分层排列文件名列表 - 最好使用 shell 工具
源代码目录具有有意义的文件名。例如 AAAbbbCCddEE.h/.cxx :其中 AAA, bb CC 可以指子系统的缩写或只是功能描述,如“...打印...”或“...检查...”
随着代码库的增长,我们每个目录的文件越来越多。仅仅知道什么在做什么,特别是对于新领域,就变得令人生畏。
在这种情况下,一个通用工具可以通过动态最大匹配名称和显示级别和文件来平衡所有文件名,这将是有用的。什么构成一个级别取决于另一个文件中是否存在匹配的前缀。所以在上面的例子中,如果 AAAbbbCCddFF.h/.cxx 存在于同一个目录中,那么 AAAbbbCCddFF 和 AAAbbbCCEE 将属于同一级别(深度 4)AAAbbbCCdd 并一起显示
使用 diff (在文件名本身上)和 shell 工具看起来可行 - 任何类似的现有参考都会有用吗?
javascript - 返回 Javascript 中正则表达式 match() 的位置?
有没有办法在 Javascript 中检索正则表达式 match() 结果的字符串中的(起始)字符位置?
algorithm - 首次出现的并行字符串匹配算法
首先,这是家庭作业。话虽如此,它是非常开放的,对于如何开始思考这个问题(或一般的并行算法),我们的指导几乎为零。我想要正确方向的指针,而不是完整的解决方案。任何可以帮助的阅读也将是极好的。
我正在研究一种使用并行算法匹配大量文本中第一次出现的模式的有效方法。该模式是简单的字符匹配,不涉及正则表达式。我设法想出了一种找到所有匹配项的可能方法,但这需要我查看所有匹配项并找到第一个匹配项。
所以问题是,我会更成功地在进程之间分解文本并以这种方式扫描吗?还是最好进行某种进程同步搜索,其中第 j 个进程搜索模式的第 j 个字符?如果然后所有进程对其匹配返回真,则这些进程将改变它们在匹配所述模式中的位置并再次向上移动,继续直到所有字符都匹配,然后返回第一个匹配的索引。
到目前为止,我所拥有的非常基本,而且很可能不起作用。我不会实现这一点,但任何指针将不胜感激。
使用 p 个处理器,一个长度为 t 的文本,一个长度为 L 的模式,以及使用 L 个处理器的上限:
java - 用于严格文档相似度的文本相似度函数
我正在编写一个 java 软件,它必须对以 UTF-8 编码的两个文档的相似性做出最终判断。
这两个文档很可能相同或略有不同,因为它们具有许多共同特征,例如日期、位置、创建者等,但它们的文本决定了它们是否真实。
我希望这两个文档的文本要么非常相似,要么根本不相似,因此我可以对设置相似性的阈值相当严格。例如,我可以说这两个文档只有在它们有 90% 的词是相同的情况下才相似,但我想要更健壮的东西,它适用于短文本和长文本。
总结一下,我有:
- 两份文件,要么非常相似,要么根本不相似,但是:
- 两份文件更可能相似
- 文档可以很长(一些段落)也可以很短(一些句子)
我已经尝试过simmetrics,它有大量的字符串匹配函数,但我最感兴趣的是关于可能使用的算法的建议。
我有可能的候选人是:
- Levenshtein:它的输出对于短文本更重要
- 重叠系数:可能,但它可以很好地区分不同长度的文档吗?
此外,仅当它们完全相同时才考虑两个相似的文本不会很好,因为我希望只有几个单词不同的文档通过相似性测试。
python - 返回Python中字符串中第一个非空白字符的最低索引
在 Python 中执行此操作的最短方法是什么?
必须返回索引 = 3
python - 搜索允许在字符串的任何位置出现一个不匹配的字符串
我正在处理长度为 25 的 DNA 序列(参见下面的示例)。我有一个 230,000 的列表,需要在整个基因组中寻找每个序列(弓形虫寄生虫)。我不确定基因组有多大,但比 230,000 个序列长得多。
我需要查找每个 25 个字符的序列,例如 ( AGCCTCCCATGATTGAACAGATCAT
)。
基因组被格式化为一个连续的字符串,即 ( CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT....
)
我不在乎它在哪里或找到了多少次,只关心它是否存在。
这很简单,我想——
但我也找到了一个在任何位置定义为错误(不匹配)的紧密匹配,但只有一个位置,并在序列中记录该位置。我不确定如何做到这一点。我唯一能想到的是使用通配符并在每个位置使用通配符执行搜索。即,搜索 25 次。
例如,
在第 13 位出现不匹配的势均力敌的比赛。
速度不是什么大问题,因为我只做了 3 次,不过如果速度快就好了。
有一些程序可以做到这一点——查找匹配项和部分匹配项——但我正在寻找一种在这些应用程序中无法发现的部分匹配项。
这是 perl 的类似帖子,尽管它们只是比较序列而不是搜索连续字符串:
awk - 从 awk 中读取 stderr
我想将 SSH 调试信息与其他输入分开(并记录)。但是,如果我只是将 stderr 重定向到一个日志文件,我就有可能将来自 SSH 的输出和来自主机上的远程进程的输出结合起来(这可能会向 stderr 发送一些东西):
所以,我只想过滤掉那些匹配“debug1”的行:
到目前为止很好,但是 ssh 的调试输出到 stderr。所以...
又被坑了!我不想混合标准输出和标准错误。坏的!
像我这样的孩子是做什么的?我正要走命名管道或一些这样的狂野路线,但实际上,我需要知道的是如何让 awk 仅匹配来自 stderr 的模式。
c# - string1 的哪个子串与 string2 匹配
有两个字符串。
String str1="Order Number Order Time Trade Number";
String str2="Order Tm";
然后我想知道str2与 str1 中的哪个子字符串匹配。
我正在使用正则表达式,因为“Order Tm”也将匹配“Order Time”。它给出了匹配发生与否的布尔值。
就像str2="Order Tm"
那样,它应该像在str1 中一样返回,Order Time是发生匹配的子字符串。
php - php使用通配符选择哈希
假设我有一个哈希图,
我正在尝试完成自动完成功能。当用户键入“fo”时,我想通过 ajax 从 $hash 中检索 3 个键。当用户键入“for”时,我只想检索键 fort 和 fork。这可能吗?
我在想的是使用二进制搜索来隔离带有“f”的键,而不是蛮力搜索。然后在用户键入查询时继续消除索引。有没有更有效的解决方案?
编辑:关于通配符,我想知道是否有办法做 $hash["f*"],返回所有以 'f' 开头的索引。
javascript - 在给定更多输入的情况下,确定值是否可能与正则表达式匹配
我目前正在用 JavaScript 编写一个应用程序,我正在将输入与正则表达式匹配,但我还需要找到一种方法如何将字符串与正则表达式的一部分进行匹配。
例如:
现在我需要找到一种方法来以某种方式确定potentially
变量的值与表达式不完全匹配/^ggg$/
,但是有更多的输入,它可能可以!
因此,例如在这种情况下,potentially
变量是g
,但是如果再附加两个g
',它将匹配正则表达式/^ggg$/
但在 的情况下,无论您附加多少字符invalid
,它都永远无法匹配表达式。/^ggg$/
那么如何确定一个字符串是否具有匹配特定正则表达式的潜力呢?