【发布时间】:2015-12-27 20:18:36
【问题描述】:
我的子字符串有问题,我有一个格式如下的字符串 目前正在使用 getline。
Richard[12345/678910111213141516] was murdered
我一直在使用find_last_of 和find_first_of 来获取括号和正斜杠之间的位置以检索每个字段。我有这个工作和功能,但我遇到了一个问题。名称字段的长度可以是 32 个字符,并且可以包含 / 和 [],所以当我最终遇到一个用户,其名称的 URL 为用户时,我并不喜欢这样。这些数字在每个用户的基础上也是随机的。我从字符串、名称和两个标识号中检索每个字段。
另一个字符串可能看起来像这样,所以我将抓取总共 6 个子字符串。
Richard[12345/678910111213141516] was murdered by Ralph[54321/161514131211109876]
这只是另一个巨大的混乱,我想做的是从后面开始移动到前面,但是如果第二个名称字段 (Ralph) 包含任何 / 或 [] 它会破坏计数用于检索第一部分。任何见解都会有所帮助。谢谢。
简而言之。我该如何解释这些。
名称还可以包含任何字母/数字和特殊字符。
Richard///[][][12345/678910111213141516] was murdered by Ralph[/[54321/161514131211109876]
最终结果将是包含此的 6 个子字符串。
- 理查德///[][]
- 12345
- 678910111213141516
- 拉尔夫[/
- 54321
- 161514131211109876
我已经提到过正则表达式,但我不知道它是否更适合这项任务,我添加了标签,以便更有经验的人回答/评论。
【问题讨论】:
-
可怜的 Richard :( - 所以,你想在一个字符串中获取名称,而在另一个字符串中获取 ID?
-
没有。我可以这样做,但我无法解释人名的随机性,他们的名字可能是 Richard/////[[[[[]][[] 以及我目前正在搜索的方式那些不能解释这一点。我想知道的是我怎么能解释这样的名字。
-
对不起,我有点不清楚,我会编辑帖子。
-
名字不能有数字?严格吗?
-
名称可以包含任何字母/数字和特殊字符,这就是我认为 Regex 行不通的原因。
标签: c++ regex substring getline