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