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

regex - 我需要一个正则表达式来匹配一般 URL

我需要使用任何协议(http、https、shttp、ftp、svn、mysql 和我不知道的东西)测试通用 URL。

我的第一关是这样的:

PCRE.NET所以没什么可看中的)

0 投票
3 回答
194 浏览

.net - 测试语法正确的路径

在 .NET 中是否有一个函数可以测试字符串在语法上是否是正确的路径?我特别不希望它测试路径是否确实存在。

我目前对此的看法是一个正则表达式:

火柴:

拒绝:

0 投票
5 回答
3156 浏览

asp.net - 全文搜索的最接近匹配

我正在尝试为我的网站实施内部搜索,如果输入错误的单词,可以为用户指明正确的方向,就像你的意思是:在谷歌搜索中。

有人知道如何进行这样的搜索吗?我们如何确定我们假设用户打算搜索的单词或短语的相关性?

  • 我将 asp.net 和 sql server 2005 与 FTS (fullTextSearch) 一起使用

谢谢

0 投票
4 回答
16147 浏览

algorithm - 找出两个字符串的相似程度

我正在寻找一种算法,它需要 2 个字符串,并会给我一个“相似性因素”。

基本上,我将有一个可能拼写错误的输入,有字母转置等,我必须在我拥有的可能值列表中找到最接近的匹配项。

这不适用于在数据库中搜索。我将有一个包含 500 个左右的字符串的内存列表来匹配,所有字符串都在 30 个字符以下,所以它可能相对较慢。

我知道它存在,我以前见过它,但我不记得它的名字了。


编辑:感谢您指出 Levenshtein 和 Hamming。现在,我应该实施哪一个?它们基本上测量不同的东西,两者都可以用于我想要的东西,但我不确定哪个更合适。

我已经阅读了算法,汉明似乎明显更快。由于两者都不会检测到两个字符被转置(即 Jordan 和 Jodran),我认为这将是一个常见错误,这对于我想要的更准确?有人能告诉我一些关于权衡的事情吗?

0 投票
11 回答
8113 浏览

string-matching - 产品名称的模糊匹配

我需要将来自不同来源的产品名称(相机、笔记本电脑、电视等)自动匹配到数据库中的规范名称。

例如"Canon PowerShot a20IS""NEW powershot A20 IS from Canon""Digital Camera Canon PS A20IS" 应该都匹配"Canon PowerShot A20 IS"。我已经通过一些额外的启发式(删除明显的常用词,为数字更改分配更高的成本等)来处理 levenshtein 距离,这在某种程度上有效,但不幸的是还不够好。

主要问题是,即使是相关关键字的单个字母变化也会产生巨大的差异,但要检测哪些是相关关键字并不容易。以三个产品名称为例:
Lenovo T400
Lenovo R400
New Lenovo T-400, Core 2 Duo
前两个在任何标准上都是非常相似的字符串(好吧,soundex 在这种情况下可能有助于区分 T 和 R,但名称可能还有400T和400R),第一和第三作为琴弦相距很远,但是是同一个产品。

显然,匹配算法不可能 100% 精确,我的目标是自动匹配大约 80% 的名称,并且置信度很高。

非常感谢任何想法或参考

0 投票
24 回答
72923 浏览

string-matching - 一种更好的变长字符串相似度排序算法

我正在寻找一种字符串相似性算法,它在可变长度字符串上产生比通常建议的更好的结果(levenshtein distance、soundex 等)。

例如,

给定字符串 A:“Robert”,

然后是字符串 B:“Amy Robertson”

会比

字符串 C:“理查德”

此外,最好该算法应该与语言无关(也适用于英语以外的语言)。

0 投票
1 回答
254 浏览

php - 哪个是更可靠的匹配方案,EREGI 还是 STRIPOS?

在匹配的情况下,您认为哪种方案更好?

是eregi还是stripos或任何其他方法?

0 投票
6 回答
743 浏览

java - 在 Java 中将文本文件表示为单个单元,并匹配文本中的字符串

如何将文本文件(或 XML 文件)表示为整个字符串,并在其中搜索(或匹配)特定字符串?

我创建了一个 BufferedReader 对象:

然后我尝试使用 Scanner 类及其选项来指定不同的分隔符,如下所示:

使用这样的 Scanner 类,我可以逐行或逐字阅读文本,但这对我没有帮助,因为有时在我想要处理的文本中,我有

我想说:如果您<review>在文本中的任何地方找到“”,请对以下下一行(或一段文本)执行某些操作,直到找到“ </review>”。问题是<review></review>位于文本中的不同位置,有时会粘在其他文本上(因此作为分隔符的空白对我没有帮助)。

我曾想过我可能会在 Java 中使用正则表达式 API(Pattern 和 Matcher 类),但它们似乎匹配特定的字符串或行,并且我希望将文本作为一个连续的字符串(至少这是我的印象从我所读到的关于它们的信息中)。你能告诉我在这种情况下我应该使用什么结构/方法/类吗?谢谢你。

0 投票
2 回答
32358 浏览

xpath - 已知属性的 XPath 部分

我知道文档中属性的部分值,但不是全部。有没有我可以用来表示任何值的字符?例如,输入的标签值是“A. Choice 1”。我知道它说的是“Choice 1”,但不知道它会在“Choice 1”之前说“A.”还是“B.”。以下是相关的 HTML。输入和标签还有其他属性,但是每次渲染页面的时候都不一样,所以我不能用它们作为引用:

这是我用来选择值为“Choice 1”的标签旁边的输入的XPath表达式,但 HTML 中 A 位于其前面:

我不知道 HTML 中的 A 是 A、B 还是 C 等。但我知道正确的输入总是旁边有选择 1 文本。如果标签包含选项1,而不是等于选项 1,我怎么说选择它?

0 投票
32 回答
4568 浏览

regex - 正则表达式是编程必须的吗?

正则表达式是编程必须的吗?