[英]How to remove words starts with : sign and ends with : sign, not a full sentence in c#
我想刪除兩側都帶有:符號的單詞(Like:word :)。我已經使用正則表達式刪除了兩個:sign之間的所有單詞。 但是我需要刪除兩個:符號之間不存在的單個單詞,而不是完整的句子(例如:我喜歡打板球:)。
string txt = "Hello, i :want: to remove :some word from: my text";
var output = Regex.Replace(txt, @" ?\:.*?\:", " ");
預期產量:
您好,我要從文字中刪除一些單詞
問題是您的正則表達式。 嘗試這個:
var output = Regex.Replace(txt, @":([A-Za-z0-9]*):", "");
在正則表達式中,您使用的是.*
它匹配除換行符以外的任何字符。 相反,我假設您想要任何非空白字符。 在正則表達式中,這將是\\S
,因此,您總共可以得到:
string txt = "Hello, i :want: to remove :some word from: my text";
var output = Regex.Replace(txt, @" ?\:\S*?\:", " ");
使用字符類來匹配正則表達式中的單詞。
"\\:\\w\\:"
這將匹配兩邊用:包圍的單詞,僅此而已。
我建議這個:
var output = Regex.Replace(txt, @":\w+:", "");
您可以找到所有具有的詞:在其兩面都簽收,但不應有空格
string txt = "Hello, i :want: to remove :some word from: my :test:";
var output = Regex.Replace(txt, @" \:\w+\b(?! )\:", " ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.