簡體   English   中英

匹配任何不是字母的特殊字符(包括下划線,但不包括空格)

[英]Match any special characters (including underscore, but not space) that are not letters

我想匹配任何不是數字或字母(人們用來寫字)的特殊字符。 我想包括下划線,因為下划線既不是數字也不是單詞中使用的字母。 但我不想包括空格。

簡而言之,我想匹配除最后兩個之外的每個人。

12345_678
12345*678
12345-678
12345&678
12345-678
12345あ678
12345 678

我不能使用[^a-zA-Z0-9]因為它不包括非拉丁字母,如日語。 \\d+(\\W|_)\\d+得到了不需要的空間。 什么是最好的正則表達式?

使用以下也忽略日語字母:

[^a-zA-Z\d\s぀-ゟ゠-ヿ一-龯]

以下正則表達式將匹配既不是字母數字字符(包括不同字母表的字符,例如在日本或韓國使用的字符)也不是空格的任何字符。

([^\w ]|_)

請注意顯式匹配下划線字符的更改,這是必要的,因為下划線是 \\w 字符類的一部分,因此不會單獨由[^\\w ]匹配。 (另請注意,該模式在 \\w 之后有一個空格字符)

如果不只是簡單的空格字符而且任何其他空白字符(例如制表符)也應該從匹配中排除,那么以下稍微修改的模式可能更合適:

([^\w\s]|_)


請參閱此處了解 regexstorm.net 上的后一種模式示例,包括平假名和韓文字符

您可能需要查看Unicode 字符類別 似乎您需要匹配SymbolsPunctuation

var regexPattern = @"[\p{S}\p{P}]";

符號包括 +、-、=、<、$、^、|、§ 等

標點符號包括 _, —, (, {, ", », !, ?, #, * 等

暫無
暫無

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

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