【问题标题】:How to find the Postion of all matching substrings in a QStringList如何在 QStringList 中找到所有匹配子字符串的位置
【发布时间】:2022-07-16 00:18:50
【问题描述】:

我正在寻找一种方法来查找 QStringList 中所有匹配子字符串的单元格位置。

列表由一个 txt 文件填充,如下所示:

10:36:50,590/2002/1800

10:36:50,621/2002/1801

10:36:50,652/2002/1802

10:36:50,684/2002/1803

10:36:50,715/2002/1803

10:36:50,746/2002/1803

10:36:50,777/2002/1803/0/0/Target_Hit

10:36:50,809/2002/1802

10:36:50,840/2002/1802

10:36:50,871/2002/1802

10:36:50,965/2000/1831/0/0/Target_Hit

QStringList 的每个单元格包含一行 txt 文件。 现在我想找到包含子字符串“Target_Hit”的单元格的绝对命中数和位置。

我试着像这样找到它的数量: int number_of_hits = List.indexOf(QRegExp(".*\Target_Hit$)); 但返回 -1 所以我猜 QRegExp 是不正确的。

【问题讨论】:

  • 我建议您更改对文件的读取以实际解析输入,并将其放入结构对象中。然后,您可以拥有这些对象的容器,并且可以轻松找到所有符合您条件的元素,而无需求助于正则表达式。
  • 但是,对于您当前的字符串列表,您也不需要正则表达式。只需遍历列表,找到包含子字符串 "Target_Hit" 的字符串。

标签: c++ qt


【解决方案1】:

您不能为此使用 indexOf,因为它只会返回一个索引,而且您似乎正在寻找多个。

我会逐行读取文件,检查每一行是否包含您要查找的内容,并记下这一点,实际上是这个伪代码:

initialise a counter to zero.
initialise a position list to an empty list.
read each line
    check if the line contains the search string.
    if it does: append the position into a list and increment the counter.
    continue the next line.

然后,最后,你可以拥有你想要拥有的一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2017-11-20
    • 2015-08-05
    • 2021-04-04
    相关资源
    最近更新 更多