簡體   English   中英

正則表達式刪除字符和提供的單詞

[英]Regex to remove characters and supplied words

我需要一個只允許字母數字字符的正則表達式,並刪除某些全字。

例:

輸入字符串: 這是johny-bravo的祖父

結果字符串: johny-bravos-dad

要用空字符串替換的單詞/字符:this,is,',grand

這是我到目前為止:

var input = "this-is-johny-bravo's-grand-dad";
var regex = new Regex(@"([^a-z0-9\-][\b(this|is|grand)\b]?)");
var result = regex.Replace(input, "");

結果似乎沒有撇號,但不幸的是仍然包括被拒絕的全字。

您還需要將字符類添加到交替:

new Regex(@"\b(this|is|grand)\b-?|[^a-z0-9-]");

你的表情太復雜了。 嘗試

\b(this|is|grand|')\b-?

此外,這是您的問題的根本原因:字符類不是為了交替。 這個[\\b(this|is|grand)\\b]在句法上等同於這個[()adghinrst|]

考慮一下,你可能想要這個:

(\b(this|is|grand)\b|[^a-z0-9-])-?

分解:

(                          # group 1
    \b(this|is|grand)\b    #   any of these words
    |                      #   or 
    [^a-z0-9-]             #   any character except one of these
)                          # end group 1
-?                         # optional dash at the end

暫無
暫無

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

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