Я работаю над преобразованием данных в формат XML.Одно из ограничений XML заключается в том, что:
Имена тегов не могут содержать символы! "# $% & '() * +, /; <=>? @ [] ^` {|} ~,ни пробел, и не может начинаться с "-", "." или цифры.
Я пытаюсь перехватить эти ошибки перед созданием тегов, и у меня возникают проблемы с использованием регулярных выражений для сопоставления чего-либо, содержащеголюбой из этих символов.
Я хотел бы иметь возможность использовать '[: punct:]', но так как допускается несколько знаков препинания, я не могу.
Регулярное выражение, которое я пробовал:
'[!"#$%&\'()*+,/;<=>?@[\\]^`\\{|\\}~ ]'
R код:
practice <- c("T[K","T!K","T\"K","T#K","T$K","T%K","T&K","T'K","T(K", "T)K","T*K","T+K","T,K","T/K","T;K","T<K","T=K","T>K","T?K","T@K", "T[K","T\\K","T]K","T^K","T`K","T{K","T|K","T}K","T~K","T]K")
grepl(pattern = '[!"#$%&\'()*+,/;<=>?@[\\]^`\\{|\\}~]', practice)
Я ожидал, что все результаты будут ИСТИНА.
Фактические результаты:
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[18] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Япредполагая, что я испортил синтаксис обратной косой черты или понимание []. Тем не менее, я занимался исследованиями и все еще не могу понять, что не так. Любая помощь будет большой. Спасибо