簡體   English   中英

RegEx替換字符串

[英]RegEx Replace string

我正在嘗試將字符串規范化,然后再進行解析。 基本上刪除逗號之前或之后的任何空格,如果兩個或多個逗號只用空格分隔,則用一個逗號替換。

var r = new Regex(@"(\s*,+\s*)");
var query = r.Replace("my reg, is a   disaster    everytime , i,try ,it,       yep, ,disaster.", ",");

輸出應該是:

my reg,is a   disaster    everytime,i,try,it,yep,disaster.

但它的:

my reg,is a   disaster    everytime,i,try,it,yep,,disaster.

任何幫助表示贊賞

嘗試

var r = new Regex(@"(\s|,)*,(\s|,)*");

基本上,用一個逗號替換任意數量的逗號和空格,其中至少存在一個逗號。

non-Regex解決方案:

var dirty = "my reg, is a   disaster    everytime , i,try ,it,       yep, ,disaster.";
var clean = string.Join(",",
                           dirty.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries)
                                .Select(x => x.Trim())
                                .Where(x => x.Length > 0));

輸出:

my reg,is a   disaster    everytime,i,try,it,yep,disaster.

這個怎么運作? ","符號拆分原始字符串,丟棄空字符串,從每個字符串的開頭/結尾修剪所有空格,使用相同的","連接非空字符串。

IMO比RegEx更容易支持

在原始字符串中,兩個逗號之間有一個空格(“,”),但正則表達式表示,+表示一個或多個連續逗號。 這有用嗎: (\\s*(,\\s+)+\\s*)

暫無
暫無

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

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