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

scala - 如何在 Scala 中进行快速前缀字符串匹配

我正在使用一些 Java 代码来进行快速前缀查找,使用 java.util.TreeSet,我可以改用 scala 的 TreeSet 吗?还是不同的解决方案?

0 投票
6 回答
20081 浏览

c# - C#:如何删除两个字符串之间的匹配子字符串?

如果我有两个字符串..说

string1="你好亲爱的 c'Lint"

string2="亲爱的"

..我想先比较字符串删除匹配的子字符串..
上述字符串对的结果是:

“你好 c'Lint”

(即"Hello""c'Lint"之间有两个空格

为简单起见,我们假设 string2 将是 string1 的子集 .. (我的意思是 string1 将包含 string2)..

0 投票
3 回答
1156 浏览

regex - 将字符串拆分为标记并在 Perl 中存储分隔符

我有一个这样的字符串:

我像这样处理我的字符串:

我想用原始空格重新加入字符串。有什么方法可以存储拆分中的空格并在以后重新使用它?或者这将是一个巨大的痛苦?它主要是装饰性的,但我想保留输入字符串中的原始空格。

0 投票
2 回答
1467 浏览

php - 如何通过匹配其值中的字符串来搜索数组键

我正在尝试在与字符串匹配的数组中查找键号。

我以这种方式尝试了array_search

但这会打印 $array[0]

还有另一种方法可以做到这一点吗?

谢谢 :)

0 投票
2 回答
3637 浏览

php - 性能明智的字符串匹配

我有一个通用的数据库查询函数,每次发出 SQL 查询时都会运行以下检查:

  1. if (preg_match('~^(?:UPDATE|DELETE)~i', $query) === 1)
  2. if (preg_match('~^(?:UPDATE|DELETE)~iS', $query) === 1)
  3. if ((stripos($query, 'UPDATE') === 0) || (stripos($query, 'DELETE') === 0))

我知道一个简单的strpos()调用比做一个要快得多preg_match(),但是由于我调用strIpos()了两次,我真的不确定哪个应该表现得更好。

第二个选项中的S模式修饰符也给我带来了一些困惑,来自手册:

当一个模式要被多次使用时,值得花更多时间分析它以加快匹配时间。如果设置了此修饰符,则执行此额外分析。目前,研究模式仅对没有单个固定起始字符的非锚定模式有用。

在这种情况下,速度并不重要(否则我不会使用这个通用查询函数)但是,我仍然希望让它尽可能快地运行,同时保持它的简单性。

我应该选择以上哪个选项?


编辑:运行了一个简单的基准测试,但我仍然无法确定哪种方法效果更好。

以下是10,000 次尝试的结果(总时间,以秒为单位):

100,000 次尝试

1,000,000 次尝试

10,000,000 次尝试

正如您所看到的结果差异很大,这让我想知道这是否是进行基准测试的正确方法。

0 投票
2 回答
1362 浏览

python - Python中的字符串匹配

有谁知道Python中实现了哪种字符串匹配算法?

0 投票
6 回答
10157 浏览

javascript - JavaScript 等价于 C strncmp(比较字符串的长度)

JavaScript 中是否有与 C 函数等价的功能strncmpstrncmp接受两个字符串参数和一个整数length参数。它将比较两个字符串的最多length字符,并确定它们是否相等length

JavaScript 是否有等效的内置函数?

0 投票
2 回答
146 浏览

regex - 更多字符串匹配功能

是否可以创建一个正则表达式来匹配所有带有五个 a 和五个 b 的字符串?

就像 aaaaabbbbb 或 ababababab 或 aabbaabbab。

我想确定性引擎需要多项式时间。

是否有其他匹配语言可以实现这种匹配?

更新

我想用那种表达方式进行搜索,所以我把目的换成了(?=b*ab*){5}(?=a*ba*){5}([ab]{10}),效果很好!:) 对于这样的表达方式,我仍然不确定。但我想我只能查找前瞻表达式。

我仍然很好奇还有哪些其他类型的模式,易于解释但难以正则表达式?

0 投票
1 回答
86 浏览

java - 帮助构建正则表达式

我需要知道一个字符串是否符合许多不同的标准。我正在尝试通过使用正则表达式来解决这个问题,然后查看它是否匹配(在 Java 中:str.matches(myRegex);),但我做不到。

标准如下:

  • 要匹配的字符串由 4 个字母构成,[AZ]
  • 它可以在(但不一定)前面有“-”、“+”或“VC”之一
  • 它只能匹配包含正好 4 个字母(以及可能的前面字符)的字符串

例子:

  • “SHSN”-> 匹配
  • "+SHRA" -> 匹配
  • “VCSHRA”-> 匹配
  • “CAVOK”-> 不匹配
  • "-+SHSN" -> 不匹配

这可以在一个正则表达式中完成吗?还是应该用代码或两者结合来完成?

谢谢,

莱纳斯

0 投票
3 回答
8153 浏览

java - lucene 使用的字符串匹配算法

我想知道 Apache Lucene 使用的字符串匹配算法。我一直在浏览这里给出的 lucene 使用的索引文件格式。似乎 lucene 存储文本中出现的所有单词,就像它们在每个文档中出现的频率一样。但据我所知,为了有效的字符串匹配,它需要预处理文档中出现的单词。

示例:搜索“iamrohitbanga 是 stackoverflow 的用户”(使用模糊匹配)

在一些文件中。

可能存在包含字符串“rohit banga”的文档

要发现搜索字符串中存在子字符串 rohit 和 Banga,它将使用一些有效的子字符串匹配。

我想知道它是哪种算法。如果它做了一些预处理,java api中的哪个函数调用会触发它。