【问题标题】:Capture the specfic text and replace it in C# [duplicate]捕获特定文本并在 C# 中替换它 [重复]
【发布时间】:2016-10-14 06:53:49
【问题描述】:

下面是例子——

我要去??地点??。 我要去??Location_New??

在这些字符串值中,我需要捕获由 ?? 包围的文本。标记。如果 ?? 中的值,我可以替换它使用 contains 方法标记是静态的。但是它不是,但我需要捕获文本。所以你能指导我吗?

应用程序的目的是,它应该捕获任何被 ?? 包围的值标记并提示用户,然后用户将输入应该替换由 ?? 包围的文本的值标记。不仅仅是一个文本值。所有的文字都用??标记

【问题讨论】:

  • 另见stackoverflow.com/questions/20701818/…等。阅读How to Ask 并分享您的研究。
  • @CodeCaster 所有这些答案都在解释如何替换一个文本值。这对我替换段落中的多个值有什么帮助。我需要得到所有被包围的值??标记。可以大于 1
  • 一个正则表达式可以在一个字符串中有多个匹配项。关键是您不是第一个想要替换某些分隔子字符串的人,因此请先尝试搜索并显示您尝试过的内容。
  • 感谢您的建议。
  • @CodeCaster 实际上尝试了我自己并找到了解决方案。 rubular.com/r/JGhHTHbTgK

标签: c# asp.net


【解决方案1】:

用户System.Text.RegularExpressions.Regex

string eml = "??Location??";
string pattern = @"(?<=[?]{2})[\w]+(?=[?]{2})";
string result = System.Text.RegularExpressions.Regex.Replace(eml,pattern, m => m + "_new");

(?&lt;=[?]{2}) 文本以?? 开头

[\w]+ 要替换的文本(一个或多个单词字符、字母数字和下划线)

(?=[?]{2})文本以??结尾

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2012-12-10
    相关资源
    最近更新 更多