|
|
|
| Объясните пожалуйста на простом примере, что может обозначать выражение типа:
( ( ? : # | // ) [ ^ \ n ] * | / \* .*? \* / )
Извините, что пишу с пробелами. далее знак // - однострочный коммент
Я разобрал его так: последняя часть:
/ \* .*? \* / где: / \* // /*
[ ^ \n ] * // любые символы, кроме \n и и этих символов может не быть, а могут быть в любых
количествах .
всё бы ничего, но я не могу понять, что делает этот кусок выражения: ( ? : # | // )
Я читал в нете что сочетание двух символов: ?: // предписывает не сохранять результат для
данных круглых скобок, но на практике всё иначе. Кто что подскажет? В поисковиках был. | |
|
|
|
|
|
|
|
для: bbum605
(04.09.2009 в 18:29)
| | >не сохранять результат
всё правильно, здесь можно было совсем не делать никаких скобок
, но тогда "или " между только двумя подстроками # | // распостранится и на всё остальное
, и (?:) в случаях когда ненадо ничего захватывать всегда лучше чем ()
> на простом примере
, проще всего просто запустить на каком-нибудь файле , и посмотреть ;)
( ( ? : # | // ) [ ^ \ n ] * | / \* .*? \* / )
это похоже на отлов комментариев в стиле php,
, если это и есть всё выражение , то можно убрать внешние скобки, и вместо $1 использовать $0
(если используется)
, а так много вариантов написания этого самого '@(?:#|//)[^\n]*|/\*.*?\*/@s' | |
|
|
|
|
|
|
|
для: heed
(04.09.2009 в 22:56)
| | Спасибо за ответ heed. Сам уже разобрался. А за советы спасибо. | |
|
|
|