问题标签 [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.
scala - 如何在 Scala 中进行快速前缀字符串匹配
我正在使用一些 Java 代码来进行快速前缀查找,使用 java.util.TreeSet,我可以改用 scala 的 TreeSet 吗?还是不同的解决方案?
c# - C#:如何删除两个字符串之间的匹配子字符串?
如果我有两个字符串..说
string1="你好亲爱的 c'Lint"
和
string2="亲爱的"
..我想先比较字符串并删除匹配的子字符串..
上述字符串对的结果是:
“你好 c'Lint”
(即"Hello"和"c'Lint"之间有两个空格)
为简单起见,我们假设 string2 将是 string1 的子集 .. (我的意思是 string1 将包含 string2)..
regex - 将字符串拆分为标记并在 Perl 中存储分隔符
我有一个这样的字符串:
我像这样处理我的字符串:
我想用原始空格重新加入字符串。有什么方法可以存储拆分中的空格并在以后重新使用它?或者这将是一个巨大的痛苦?它主要是装饰性的,但我想保留输入字符串中的原始空格。
php - 如何通过匹配其值中的字符串来搜索数组键
我正在尝试在与字符串匹配的数组中查找键号。
我以这种方式尝试了array_search
但这会打印 $array[0]
还有另一种方法可以做到这一点吗?
谢谢 :)
php - 性能明智的字符串匹配
我有一个通用的数据库查询函数,每次发出 SQL 查询时都会运行以下检查:
if (preg_match('~^(?:UPDATE|DELETE)~i', $query) === 1)
if (preg_match('~^(?:UPDATE|DELETE)~iS', $query) === 1)
if ((stripos($query, 'UPDATE') === 0) || (stripos($query, 'DELETE') === 0))
我知道一个简单的strpos()
调用比做一个要快得多preg_match()
,但是由于我调用strIpos()
了两次,我真的不确定哪个应该表现得更好。
第二个选项中的S
模式修饰符也给我带来了一些困惑,来自手册:
当一个模式要被多次使用时,值得花更多时间分析它以加快匹配时间。如果设置了此修饰符,则执行此额外分析。目前,研究模式仅对没有单个固定起始字符的非锚定模式有用。
在这种情况下,速度并不重要(否则我不会使用这个通用查询函数)但是,我仍然希望让它尽可能快地运行,同时保持它的简单性。
我应该选择以上哪个选项?
编辑:我运行了一个简单的基准测试,但我仍然无法确定哪种方法效果更好。
以下是10,000 次尝试的结果(总时间,以秒为单位):
100,000 次尝试:
1,000,000 次尝试:
10,000,000 次尝试:
正如您所看到的结果差异很大,这让我想知道这是否是进行基准测试的正确方法。
python - Python中的字符串匹配
有谁知道Python中实现了哪种字符串匹配算法?
javascript - JavaScript 等价于 C strncmp(比较字符串的长度)
JavaScript 中是否有与 C 函数等价的功能strncmp
? strncmp
接受两个字符串参数和一个整数length
参数。它将比较两个字符串的最多length
字符,并确定它们是否相等length
。
JavaScript 是否有等效的内置函数?
regex - 更多字符串匹配功能
是否可以创建一个正则表达式来匹配所有带有五个 a 和五个 b 的字符串?
就像 aaaaabbbbb 或 ababababab 或 aabbaabbab。
我想确定性引擎需要多项式时间。
是否有其他匹配语言可以实现这种匹配?
更新:
我想用那种表达方式进行搜索,所以我把目的换成了(?=b*ab*){5}(?=a*ba*){5}([ab]{10})
,效果很好!:) 对于这样的表达方式,我仍然不确定。但我想我只能查找前瞻表达式。
我仍然很好奇还有哪些其他类型的模式,易于解释但难以正则表达式?
java - 帮助构建正则表达式
我需要知道一个字符串是否符合许多不同的标准。我正在尝试通过使用正则表达式来解决这个问题,然后查看它是否匹配(在 Java 中:str.matches(myRegex);),但我做不到。
标准如下:
- 要匹配的字符串由 4 个字母构成,[AZ]
- 它可以在(但不一定)前面有“-”、“+”或“VC”之一
- 它只能匹配包含正好 4 个字母(以及可能的前面字符)的字符串
例子:
- “SHSN”-> 匹配
- "+SHRA" -> 匹配
- “VCSHRA”-> 匹配
- “CAVOK”-> 不匹配
- "-+SHSN" -> 不匹配
这可以在一个正则表达式中完成吗?还是应该用代码或两者结合来完成?
谢谢,
莱纳斯
java - lucene 使用的字符串匹配算法
我想知道 Apache Lucene 使用的字符串匹配算法。我一直在浏览这里给出的 lucene 使用的索引文件格式。似乎 lucene 存储文本中出现的所有单词,就像它们在每个文档中出现的频率一样。但据我所知,为了有效的字符串匹配,它需要预处理文档中出现的单词。
示例:搜索“iamrohitbanga 是 stackoverflow 的用户”(使用模糊匹配)
在一些文件中。
可能存在包含字符串“rohit banga”的文档
要发现搜索字符串中存在子字符串 rohit 和 Banga,它将使用一些有效的子字符串匹配。
我想知道它是哪种算法。如果它做了一些预处理,java api中的哪个函数调用会触发它。