【问题标题】:How do you delete text surrounding a string that you want?如何删除您想要的字符串周围的文本?
【发布时间】:2017-04-16 09:48:50
【问题描述】:

我在网上搜索过这个问题,但很遗憾找不到答案(如果有遗漏的地方,请见谅)。

我有一些代码可以过滤掉一个特定的字符串(它可以根据从串行端口读取的内容而改变)。我希望能够删除所有我不使用的字符。

例如我想从下面的文字中得到的字符串是“ThisIsTheStringIWant”

efefhokiehfdThisIsTheStringIWantcbunlokew

现在,我已经有了一个带有一些代码的函数,可以识别它并将其打印到我想要​​的位置。但是,由于通信可能以任何频率从多个端口进入,因此在将字符串打印到我想要​​的位置之前,我需要一段代码来识别我不想要的所有内容并将其从缓冲区中删除。

例如使用上面相同的随机文本,我想去掉末尾的两个随机字符串(在中间的“ThisIsTheStringIWant”之前和之后)。

efefhokiehfdThisIsTheStringIWantcbunlokew

我已尝试使用此问题中投票率最高的答案,但是我找不到在我想要的字符串之前删除不需要的文本的方法。 Remove characters after specific character in string, then remove substring?

如果有人能帮忙,那就太好了!

谢谢!

编辑:

抱歉,我应该把我的问题说得更清楚些。

任何可能的字符数都可以在我想要的实际字符串之前和/或之后,并且由于我想要的字符串来自串行端口,因此每次都会有所不同,具体取决于来自串行端口的通信.在我的应用程序中,我在 DGV 中有一个名为“Extract”的单元格,并通过输入我期望的通讯的第一位(在这种情况下,提取将是 This)。但这取决于我在做什么。

【问题讨论】:

  • 好像不用,直接把字符串替换成匹配就行了,还是这部分是更大的字符串?
  • 您是否需要删除原始字符串中的其他字符?你可以创建一个新的字符串列表,例如使用吗?或者只是用您在字符串中找到的文本覆盖原始字符串?
  • 嗯? '删除字符串周围的文本' 只留下那个字符串。所以:除了用你想要的字符串替换旧字符串之外别无他法..?

标签: c# .net string filtering


【解决方案1】:

找到你想要的字符串的位置,从该位置的开头删除到前一个位置,然后从你的字符串长度到结尾删除所有内容。

字符串:efefhokiehfdThisIsTheStringIWantcbunlokew

第 1 步 - “ThisIsTheStringIWant”从位置 13 开始,因此删除前十二个,留下...

字符串:ThisIsTheStringIWantcbunlokew

第 2 步 - “ThisIsTheStringIWant”是 20 个字符长,所以从字符 21 到字符串的长度删除,留下:

字符串:ThisIsTheStringIWant

【讨论】:

  • 等等......如果你已经知道你想要的字符串,为什么要删除它周围的文字 - 我认为我们缺少一些基本的要求......
  • 在我的表单中,我有一个名为“Extract”的单元格。无论输入什么,都会在字符串中找到匹配项。例如如果我输入“This”,那么它将找到“ThisIsTheStringIWant”并将其添加到字典中。我遇到的问题是,由于会同时进入如此多的通信,它们将进入缓冲区,因此 UI 不会减慢。在传入的通信到达缓冲区后,我想删除我不需要的文本 - 即“efefhokiehfd”和“bunlokew”。如何删除剩余的文本?
猜你喜欢
  • 2016-07-23
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
相关资源
最近更新 更多