Я задавал этот вопрос на Справочная служба Википедии , но не получил ответа.Со второй попытки пользователь Mr.98 перенаправил меня сюда, вот и я;)
Я пытаюсь написать свой собственный синтаксический анализатор регулярных выражений, поэтому я читаю соответствующие документы W3C.Стандартный документ Схема XML, часть 2: Типы данных, второе издание дает следующее определение для normal character
(с известной ошибкой отсутствия фигурных скобок):
Обычный символ - это любой символ XML, который не является метасимволом.(...)
[10] Char ::= [^.\?*+()|#x5B#x5D]
Затем появляется комментарий:
Обратите внимание, что · нормальный символ · может быть представлен как сам по себеили со ссылкой на символ.http://www.w3.org/TR/2000/WD-xml-2e-20000814#dt-charref
Я не очень хорошо говорю по-английски и не знаю, как это понять.Если авторы делают особый акцент на возможности представления · нормальных символов · ссылками на символы, то я ожидаю, что такое представление для метасимволов не допускается.Прав ли я в этом месте?
И если да, каковы последствия, если ссылка на символ задает кодовую точку метасимвола, скажем, звездочку, как в a*
?
- Является ли это выражение просто недействительным?
- Или, скорее, ссылка становится неявно нормальным символом, а выражение эквивалентно
a\*
(со звездочкой без знака)? - Что-то еще?
Все примеры, которые я нашел в Google, используют ссылки на символы для помещения метасимволов в группы символов из выражений класса символов .Однако символ Char
появляется в производственном синтаксисе 9 регулярного выражения как одна из трех версий Atom
, и ни Atom
, ни Char
сам по себе не используется для определения какого-либо вида chargroup
- вместо него используется XmlChar
, который, в свою очередь, не имеет комментариев по поводу использования ссылок на символы.
Пожалуйста, уточните беспорядок в моей голове:
- Метасимвол, указанный со ссылкой на символ, становится нормальным символом?Как должен
a*
работать? - Допустима ли ссылка на символ между
[
и ]
(внутри выражения класса символов )?
• мы сожалеем, но как механизм предотвращения спама, новые пользователи могут публиковать не более двух гиперссылок.
Ну, я думаю, они помогут читателям попасть в соответствующие разделы половины-мегабайтный документ W3C.Но делай как хочешь - я превратил их в уродливый, плохо читаемый обычный текст.Конечно, я мог бы полностью удалить их с поста, но я не считаю, что робот в этом случае прав.