我正在编写一个PostgreSQL函数,以计算特定文本子字符串在另一段文本中出现的次数。例如,调用count(’foobarbaz’,’ba’)应该返回2。
我了解要测试子字符串是否出现,我使用类似于以下的条件:
WHERE 'foobarbaz' like '%ba%'
但是,我需要它返回“ ba”发生次数的2。我该如何进行?
在此先感谢您的帮助。
选择的答案被证明比改版的慢得多regexp_replace()
。创建行以及运行聚合的开销实在太高了。
最快的方法如下:
SELECT
(length(str) - length(replace(str, replacestr, '')) )::int
/ length(replacestr)
FROM ( VALUES
('foobarbaz', 'ba')
) AS t(str, replacestr);
在这里,我们
L1
L1
字符串的长度中减去所有替换项后L2
得到L3
的字符串长度的差。L3
由替换的长度,以获得 事件为了进行比较,它比使用这种方法的 速度快 大约 五倍regexp_matches()
。
SELECT count(*)
FROM ( VALUES
('foobarbaz', 'ba')
) AS t(str, replacestr)
CROSS JOIN LATERAL regexp_matches(str, replacestr, 'g');
本文向大家介绍计算字符串中子串出现的次数。相关面试题,主要包含被问及计算字符串中子串出现的次数。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】
问题内容: 如何计算给定子字符串在Python字符串中出现的次数? 例如: 问题答案: , 像:
我需要返回一个字典,该字典计算预定列表中每个字母出现的次数。问题是我需要把大小写字母都算成一样,所以我不能用.low或.uper。 因此,例如,如果“t”是要搜索的字母,“This is a Python String”应该返回{nt':3}。 这是我目前所掌握的... 其中'letters'是条件,fullText是我正在搜索的字符串。 这里很明显的问题是,如果测试是“t”而不是“t”,我的代码
问题内容: 计算字符串中字符出现次数的最简单方法是什么? 例如,计算出现在其中的次数 问题答案: 返回sub范围中的子字符串不重叠的次数。可选参数并以片表示法解释。
问题内容: 我需要计算一个字符在一个字符串中出现的次数。 例如,假设我的字符串包含: 我想找到逗号字符的数量,即3。以及沿逗号分割后的各个字符串的数量,即4。 我还需要验证每个字符串,即str1或str2或str3或str4不应超过15个字符。 问题答案: 我已经更新了这个答案。我喜欢更好地使用比赛的想法,但是比较慢: 如果您事先知道要搜索的内容,则使用正则表达式文字;如果不知道,则可以使用构造函
本文向大家介绍计算Python中字符串中字符的出现次数,包括了计算Python中字符串中字符的出现次数的使用技巧和注意事项,需要的朋友参考一下 给我们一个字符串和一个字符。我们想找出给定字符在给定字符串中重复多少次。 随着范围和镜头 我们设计了一个for循环,以使该字符与字符串中存在的每个可通过索引访问的字符匹配。range和len函数可帮助我们确定从字符串的左移到右移时必须进行多少次匹配。 示例