簡體   English   中英

如何使用正則表達式替換C#中的一部分字符串?

[英]How to use Regular expressions to replace a part of string in C#?

我對C#和正則表達式的經驗很少,但是我需要嘗試以下邏輯:

 string replacedText = Regex.Replace(
     "ssdf bonnets sdf sdf sdf ", 
     @"(?i)^(.+ )?(bonnet)(s?)( .+)?$", 
     "$1hood$3$4"
 );

上面的代碼是stackoverflow中問題的答案:

在保留其余部分不變的同時替換字符串的一部分? 而不是僅檢測單詞(帽子),我想替換多個值,例如,如果找到“ f”或“ b”或“ s”,它將替換為“ a”嗎?

例如,如果輸入“ ahfbsdrts stb”,則輸出將為“ ahaaadrta ata”

為什么不只使用對String.Replace的多次調用?

嘗試這個:

using System;
using System.Text.RegularExpressions;

public class Example
{
 public static void Main()
 {
  string input = "ssdf bonnets sdf sdf sdf ";
  string pattern_1 = "f";
  string replacement = "a";
  Regex rgx_1 = new Regex(pattern_1);
  string result = rgx_1.Replace(input, replacement);
  string pattern_2 = "b";
  Regex rgx_2 = new Regex(pattern_2);
  result = rgx_2.Replace(result, replacement);
  string pattern_3 = "s";
  Regex rgx_3 = new Regex(pattern_3);
  result = rgx_3.Replace(result, replacement);
  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result);                             
 }
}

我發布了另一個簡短代碼選項。

請參閱http://forums.asp.net/t/1185961.aspx/1

類似於string temp = Regex.Replace(input, @"[fbs]", "a");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM