【问题标题】:Help Me Writing a Simple Regular Expression帮我写一个简单的正则表达式
【发布时间】:2011-02-28 02:53:22
【问题描述】:

我有以下文字:

txtAddressSup.Text

我希望将Sup 替换为Cus,而整个文本保持原样。我有很多采用这种格式的文本:

xxxxxxxSup.xxxxx

【问题讨论】:

  • 如果您不提供更多信息,所有解决方案都会将每次出现的“Sup”字符串替换为“Cus”。由于您的示例文本似乎是程序的一部分,也许这不是您想要的
  • 实际上,我想要某种正则表达式,只要源代码中有 Sup 这个词,就应该用 Cus 替换它。这个正则表达式将在一个名为 Find and Replace 的编辑工具上运行,它允许我编辑大型源代码块。
  • 您是否使用 Visual Studio 中的“查找和替换”来执行此操作?
  • 重要的是要知道你在用什么编辑这段代码,因为 VS 中的正则表达式语言不同于“正常”的正则表达式风格

标签: visual-studio regex replace


【解决方案1】:

为什么需要使用正则表达式?一个简单的字符串替换不起作用吗?

myString = myString.Replace("Sup.","Cus.");

【讨论】:

  • 我需要正则表达式在查找和替换选项中运行它以编辑大块代码。
  • 在 ide 中?或者您可以在程序中打开代码文件,将整个文件作为字符串读入,进行替换,然后将生成的字符串作为新文件写出...
【解决方案2】:

匹配这些的正则表达式将是(常见的正则表达式语法,而不是来自 Visual Studio 的那个):

\BSup(?=\.\w+)

只需将匹配项替换为Cus

【讨论】:

  • 我在查找和替换选项中使用了这个正则表达式,它可以帮助我进行大量编辑。
  • 在这种情况下,您应该使用“重命名...”重构,因为搜索替换通常不会按预期工作(匹配超过应有的内容等)。
【解决方案3】:

您的问题尚不清楚,但我猜您是在 Visual Studio 中执行此操作的。 Visual Studio 使用一种奇怪的正则表达式品牌,它与大多数其他引擎不兼容。试试这个:

查找:{:i}Sup{\.:i} 替换:\1Cus\2

解释:

{...} 标记表达式(在其他引擎中通常称为捕获组) :i 标识符 Sup 文字字符串“Sup” \。文字字符串“。”

要获得这方面的帮助,请参阅the description of the syntax for Visual Studio regular expressions on MSDN 或按输入字段旁边的黑色三角形以获得快速帮助。

【讨论】:

  • 谢谢。这就是我一直在寻找的。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多