2015-04-30 2 views
1

Я нижеуказанным регулярное выражение, которое будет идентифицировать следующие специальные символы:C# регулярных выражений-Специальные символы

[email protected]©#$%^&*()_+{}|:"<>?`€[]\;',./ 

Регулярное выражение:

var rx = new Regex(@"[\p{IsLatin-1Supplement}\p{P}\p{S}]"); 
var str = "[email protected]©#$%^&*()_+{}|:\"<>?€[]\\;',./`éöò"; 
var all = rx.Matches(str).Cast<Match>().ToList(); 

Как можно исключить буквальное точечный характер (.) в приведенном выше регулярном выражении, так как мне нужно проверить значение цены, например «16.01» (в данном случае - точка).

ответ

1

\p{P} содержит символ ., таким образом, он соответствует.

Вы можете вычесть точку из класса символов, если он больше не является «специальным» символ для вашего случая, и другие символы пунктуации в вашем списке:

[\p{IsLatin-1Supplement}\p{P}\p{S}-[.]] 

И тогда 16.01 не будет соответствовать.

+0

@ Rakesh: Пожалуйста, дайте мне знать, если это сработает для вас. Если он не удовлетворяет требованиям, которые вы тестируете, и ожидаемому результату. –

+0

Я проверю и дам знать – Rakesh

+0

его работу. – Rakesh

Смежные вопросы