Вы можете экранировать символы в регулярном выражении, используя \
. Так что если вы хотите сопоставить точку, вы можете сделать @"\."
. Для соответствия /._,:[]-
, например: @"[/._,:\-\[\]]
. Теперь EBDIC составляет 8 бит, но многие символы являются управляющими. У вас есть список «действительных» символов?
Я сделал этот шаблон:
string pattern = @"[^a-zA-Z0-9 ¢.<(+&!$*);¬/|,%_>?`:#@'=~{}\-\\" + '"' + "]";
В нем должны быть найдены «нелегальные» символы. Если IsMatch
, значит, есть проблема.
Я использовал это: http://nemesis.lonestar.org/reference/telecom/codes/ebcdic.html
Обратите внимание на специальную обработку "
. Я использую @
в начале строки, чтобы отключить \ escape expansion
, поэтому я не могу избежать закрывающей кавычки и поэтому добавляю ее в шаблон в конце.
Чтобы проверить это:
Regex rx = new Regex(pattern);
bool m1 = rx.IsMatch(@"a-zA-Z0-9 ¢.<(+&!$*);¬/|,%_>?`:#@'=~{}\-\\" + '"');
bool m2 = rx.IsMatch(@"€a-zA-Z0-9 ¢.<(+&!$*);¬/|,%_>?`:#@'=~{}\-\\" + '"');
m1
- это false
(это список всех «хороших» символов), m2
- это true
(к другому списку я добавил символ €
)