【问题标题】:How to replace two first characters before underscore with regex?如何用正则表达式替换下划线前的两个第一个字符?
【发布时间】:2015-07-15 11:19:15
【问题描述】:

我有这个字符串的例子:

HU_husnummer
HU_Adrs

如何替换HUMI?

所以它将是MI_husnummerMI_Adrs

我不太擅长正则表达式,但我想用正则表达式解决它。

编辑

我现在拥有但仍然无法正常工作的示例代码是:

string test = Regex.Replace("[HU_husnummer] int NOT NULL","^HU","MI");

【问题讨论】:

  • 你的字符串总是只有一个HU?还是在_ 字符之前替换?
  • 那么"HU_husnummer".Replace("HU_", "MI_")还不够吗?
  • 然后开始阅读正则表达式教程并尝试一些东西,然后再寻求完整的解决方案。
  • 我试过了,否则我不会发帖。
  • 我喜欢这样一个事实,即有人在 3 年后对此投反对票。除了解决我的问题并投反对票之外,您还有什么更好的事情要做吗?

标签: c# regex replace


【解决方案1】:

从你的 cmets 来看,你确实需要

string test = Regex.Replace("[HU_husnummer] int NOT NULL",@"^\[HU","[MI");

看看demo

如果您的输入字符串确实以 HU 开头,请从正则表达式模式中删除 \[

正则表达式是@"^\[HU"(注意用于正则表达式模式的逐字字符串文字符号):

  • ^ - 匹配字符串的开头
  • \[ - 匹配文字 [(因为它是一个特殊的正则表达式元字符,表示字符类的开头)
  • HU - 从字面上匹配 HU

【讨论】:

  • @user3436271:请不要在您的问题或其他人的答案中添加提供反馈的答案、添加 cmets。
【解决方案2】:
String varString="HU_husnummer ";
varString=varString.Replace("HU_","MI_");

链接

https://msdn.microsoft.com/en-us/library/system.string.replace(v=vs.110).aspx http://www.dotnetperls.com/replace

【讨论】:

    【解决方案3】:

    使用子字符串

    var abc = "HU_husnummer";
    var result = "MI" + abc.Substring(2);
    

    在正则表达式中替换。

    string result = Regex.Replace(abc, "^HU", "MI");
    

    【讨论】:

      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      相关资源
      最近更新 更多