2017-02-06 5 views
1

Я использую помощник из this статьи для создания MaskedTextbox и у меня есть проблемы с \ характером, если моя маска содержит этот символWPF MaskedTextBox и символ «»

b:Masking.Mask="^[0-9]{1,4}\_$" 

я

'MaskExpression' property was registered as read-only and cannot be modified without an authorization key. 

в XAML файл, но я могу начать применение, после запуска я получаю:

Additional information: analyzing "^[0-9]{1,4}\_$" - Unrecognized escape sequence \_. 

В:

SetMaskExpression(textBox, new Regex(mask, RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace)); 

Я попытался также с помощью:

\\ 
\ 

Вместо \ но это дает тот же самый результат. Как я могу это исправить?

+0

Почему избежать '_'? Используйте 'b: Masking.Mask ="^[0-9] {1,4} _ $ "'. Или вы хотите соответствовать буквальной обратной косой чертой? Затем используйте ''^[0-9] {1,4} \\\\ _ $ "или' @ "^ [0-9] {1,4} \\ _ $" '. Каков действительный ввод? –

+0

Непонятно, чего вы пытаетесь достичь. Ошибка возникает, потому что ваше регулярное выражение недействительно. Если вы хотите включить символ «\» в regex - убегите в этом: «^ [0-9] {1,4} \\ _ $" – Evk

+0

Я думал, что мне нужно использовать \ before _, my bad – Carlos28

ответ

2

Обратите внимание, что символ _ (подчеркивание) не считается специальным метасимволом регулярного выражения и не должен быть экранирован.

b:Masking.Mask="^[0-9]{1,4}_$" 

Обратите внимание, что должны быть экранированы только специальные метасимволы регулярного выражения, имеющие особое значение.

См Character Escapes in the .NET Framework ссылка:

Символы, включенные в символ или последовательность колонке (. $^{ [ (|) * + ? \ - WS) специальные регулярные элементы языка выражений. Чтобы соответствовать им в регулярном выражении, они должны быть экранированы или включены в positive character group. Например, регулярное выражение \$\d+ или [$]\d+ соответствует "$1200".

Символы, отличные от тех, которые перечислены в колонке Символ или последовательность столбец не имеют специального значения в регулярных выражениях; они соответствуют самим себе.

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