簡體   English   中英

如何刪除單詞,以:sign開頭,以:sign結尾,而不是c#中的完整句子

[英]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.

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