问题标签 [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.
.net - 测试语法正确的路径
在 .NET 中是否有一个函数可以测试字符串在语法上是否是正确的路径?我特别不希望它测试路径是否确实存在。
我目前对此的看法是一个正则表达式:
火柴:
拒绝:
asp.net - 全文搜索的最接近匹配
我正在尝试为我的网站实施内部搜索,如果输入错误的单词,可以为用户指明正确的方向,就像你的意思是:在谷歌搜索中。
有人知道如何进行这样的搜索吗?我们如何确定我们假设用户打算搜索的单词或短语的相关性?
- 我将 asp.net 和 sql server 2005 与 FTS (fullTextSearch) 一起使用
谢谢
algorithm - 找出两个字符串的相似程度
我正在寻找一种算法,它需要 2 个字符串,并会给我一个“相似性因素”。
基本上,我将有一个可能拼写错误的输入,有字母转置等,我必须在我拥有的可能值列表中找到最接近的匹配项。
这不适用于在数据库中搜索。我将有一个包含 500 个左右的字符串的内存列表来匹配,所有字符串都在 30 个字符以下,所以它可能相对较慢。
我知道它存在,我以前见过它,但我不记得它的名字了。
编辑:感谢您指出 Levenshtein 和 Hamming。现在,我应该实施哪一个?它们基本上测量不同的东西,两者都可以用于我想要的东西,但我不确定哪个更合适。
我已经阅读了算法,汉明似乎明显更快。由于两者都不会检测到两个字符被转置(即 Jordan 和 Jodran),我认为这将是一个常见错误,这对于我想要的更准确?有人能告诉我一些关于权衡的事情吗?
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% 的名称,并且置信度很高。
非常感谢任何想法或参考
string-matching - 一种更好的变长字符串相似度排序算法
我正在寻找一种字符串相似性算法,它在可变长度字符串上产生比通常建议的更好的结果(levenshtein distance、soundex 等)。
例如,
给定字符串 A:“Robert”,
然后是字符串 B:“Amy Robertson”
会比
字符串 C:“理查德”
此外,最好该算法应该与语言无关(也适用于英语以外的语言)。
php - 哪个是更可靠的匹配方案,EREGI 还是 STRIPOS?
在匹配的情况下,您认为哪种方案更好?
是eregi还是stripos或任何其他方法?
java - 在 Java 中将文本文件表示为单个单元,并匹配文本中的字符串
如何将文本文件(或 XML 文件)表示为整个字符串,并在其中搜索(或匹配)特定字符串?
我创建了一个 BufferedReader 对象:
然后我尝试使用 Scanner 类及其选项来指定不同的分隔符,如下所示:
使用这样的 Scanner 类,我可以逐行或逐字阅读文本,但这对我没有帮助,因为有时在我想要处理的文本中,我有
我想说:如果您<review>
在文本中的任何地方找到“”,请对以下下一行(或一段文本)执行某些操作,直到找到“ </review>
”。问题是<review>
和</review>
位于文本中的不同位置,有时会粘在其他文本上(因此作为分隔符的空白对我没有帮助)。
我曾想过我可能会在 Java 中使用正则表达式 API(Pattern 和 Matcher 类),但它们似乎匹配特定的字符串或行,并且我希望将文本作为一个连续的字符串(至少这是我的印象从我所读到的关于它们的信息中)。你能告诉我在这种情况下我应该使用什么结构/方法/类吗?谢谢你。
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,我怎么说选择它?
regex - 正则表达式是编程必须的吗?
正则表达式是编程必须的吗?