URL БНФ поисковой части не имеет смысла - PullRequest
0 голосов
/ 14 апреля 2010

При реализации регулярного выражения Java для URL на основе URL BNF , опубликованного W3C, я не смог понять часть search . Как указано:

httpaddress             h t t p :   / / hostport [  / path ] [ ?
                         search ]   
search                  xalphas [ + search ]   
xalphas                 xalpha [ xalphas ]   
xalpha                  alpha | digit | safe | extra | escape   
alpha                   a | b | c | d | e | f | g | h | i | j | k |
                         l | m | n | o  | p | q | r | s | t | u | v |
                         w | x | y | z | A | B | C  | D | E | F | G |
                         H | I | J | K | L | M | N | O | P |  Q | R |
digit                   0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9   
safe                    $ | - | _ | @ | . | &  | + | - 
extra                  ! | * |  " |  ' | ( | )  | , 

Поиск утверждает, что это xalphas , разделенных знаком плюс. xalphas может содержать знаки плюс самостоятельно, как утверждает safe . Таким образом, согласно моему пониманию, это должно быть:

search     xalphas

Где я здесь не так?

1 Ответ

1 голос
/ 14 апреля 2010

Это довольно очевидная ошибка (+ - зарезервированный разделитель для URI), но BNF, на который вы ссылаетесь, кажется устаревшим. Вероятно, лучше всего использовать один , включенный в конце последнего RFC 3986 .

...