[英]Split a regex matched string with commas?
我有一個正則表達式模式,它會改變被匹配的字符串..
var output = Regex.Replace(entity.NamingPattern, @"\[(?<token>.+?)\]|(?<word>[^\[\]])", (match) =>
{
var wordMatch = match.Groups["word"];
if (wordMatch.Success) return $"'{wordMatch.Value}'";
return "new."+match.Groups["token"].Value;
});
但也可以確保所有匹配的單詞和標記都用逗號分隔?
所以像這樣
(something[tester]somethi[worker]some[i]sadas,
像這樣返回
'(','s','o','m','e','t','h','i','n','g','new.tester','s','o','m','e','t','h','i','new.worker','s','o','m','e','new.i','s','a','d','a','s',','
單詞匹配每個字符和標記匹配每個方括號的內容,並刪除括號。 但我如何加入我不確定?
您可以在單詞組之后添加逗號,並為標記組添加周圍的單引號和逗號。
在最終結果中,使用TrimEnd修剪output末尾的逗號
非貪心點.*?
在模式中也可以是一個否定字符 class [^[\]]*
圖案
\[(?<token>[^[\]]*)\]|(?<word>[^[\]])
示例代碼
var s = "(something[tester]somethi[worker]some[i]sadas,";
var output = Regex.Replace(s, @"\[(?<token>[^[\]]*)\]|(?<word>[^[\]])", (match) =>
{
var wordMatch = match.Groups["word"];
if (wordMatch.Success) return $"'{wordMatch.Value}',";
return "'new."+match.Groups["token"].Value+"',";
});
Console.WriteLine(output.TrimEnd(','));
Output
'(','s','o','m','e','t','h','i','n','g','new.tester','s','o','m','e','t','h','i','new.worker','s','o','m','e','new.i','s','a','d','a','s',','
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.