【问题标题】:Find particular string pattern and replace in c#在 C# 中查找特定的字符串模式并替换
【发布时间】:2014-09-08 14:41:05
【问题描述】:

我有一个包含单词“Limited”或“Ltd”的字符串。我的要求是删除给定输入字符串中相同单词“Limited”或“Ltd”之后括号“()”中的所有文本。

例如,“Abcd Ltd (North)”将变为“Abcd Ltd”,但“Abc (North)”仍将是“Abc (North)”

“ABCD Ltd 测试(北)”也将保持不变。

我正在尝试找出c#中的正则表达式,可以解决上述问题吗?

感谢任何帮助。

【问题讨论】:

  • 你熟悉 string.Replace() 函数吗.. 无论如何,那些是括号而不是括号你也可以查看如何使用 IndexOf() 方法,这实际上是一个非常查找字符串的简单操作。也包含
  • 我需要在单词“Limited”或“ltd”之后立即找到括号,单词和空格之间可以或不能有空格。如何做到这一点。

标签: c# regex


【解决方案1】:

在这种情况下,我会使用 Lookbehind。

用法是这样的:

(?<=(Ltd|Limited))\s?\(.*?\)

并使用Regex.Replace 删除文本。

【讨论】:

  • 谢谢,它确实有效。但是,当单词“Limited”和括号之间有超过 1 个空格时,它不起作用。例如“ABC ltd (345)”没有被替换,因为 ltd 和 (345) 之间有超过 1 个空格,我需要抑制它们之间的所有空格。
  • 在这种情况下替换 \s?与 \s*?.
  • 如果解决方案有效,请接受答案:)
  • 不幸的是,标记为 2 票否决的问题,所以即使它确实有效,我也无法接受答案。
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多