[英]How to match all letters in Regex?
我有一個幫助程序,它會屏蔽一些字符串,然后在請求/響應記錄器上將其另存為xml。 當我在環境中進行測試時,一切正常,但是由於XML的命名空間,當其他客戶端開始測試時,我遇到了一些問題。 這是我的正則表達式:
formatedString = Regex.Replace( formatedString , "<c.HeresMyString>[0-14]+([0-14]{8})</c.HeresMyString>" , "<c.HeresMyString>****************$1</c.HeresMyString>" , RegexOptions.IgnoreCase );
問題是,如果客戶端更改了,標記的名稱空間也將更改。 因此,我需要匹配eveything而不是<c.HeresMyString>
和</c.HeresMyString>
。 類似於<**HeresMyString>
和</**HeresMyString>
。
編輯:示例工作。 但是我只想替換xml標記的內容,這部分恰好是[0-14]+([0-14]{8})
。 我想保留與原始字符串相同的標簽部分,而不是替代我的名稱空間。
我怎樣才能做到這一點?
我想你想要這樣的東西
formatedString = Regex.Replace( formatedString , "<[^<>]*HeresMyString>[0-14]+([0-14]{8})</[^\/]*HeresMyString>" , "<c.HeresMyString>****************$1</b.HeresMyString>" , RegexOptions.IgnoreCase );
我不確定我是否正確理解您的名字,但是如果您只是想讓它適用於原始字符串中的任何名稱空間,請為您的名稱空間使用.+
模式:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
// Your string
var formatedString = "<newNameSpace.HeresMyString>100000000000</newNameSpace.HeresMyString>";
formatedString = Regex.Replace( formatedString , "<.+HeresMyString>[0-14]+([0-14]{8})</.+HeresMyString>" , "<b.HeresMyString>****************$1</b.HeresMyString>" , RegexOptions.IgnoreCase );
Console.WriteLine(formatedString);
}
}
這是一個工作示例,並提供有關正則表達式的簡單參考http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.