|
|
|
| необходимо выбрать строку в тексте ограниченную точкой с запятой: при этом строка это любые символы не являющиеся точкой с запятой числом от трех до двадцати или нет символов вообще. делаю так:
preg_match("%^([^;]{3,20}|\w{0});(.*)$%", $line, $matches);
|
как видно вариант "нет символов вообще" я описываю "|\w{0}" может есть более правильный вариант? заранее спасибо! | |
|
|
|
|
|
|
|
для: shaman_rus
(09.03.2010 в 09:28)
| | \w{0} это просто "пусто"
([^;]{3,20}|\w{0}) то-же самое что и ([^;]{3,20})? или ([^;]{3,20}|)
>необходимо выбрать строку
судя по ^$ и тому что нет модификаторов m и s
"%^([^;]{3,20})?;(.*)$%" совпадёт только сразу со всем текстом , если 3-20 символов есть ";" или его нет,
и после ";" в первом случае нет не одного переноса строки, во втором случае переносов строки не должно быть совсем.
m сделает так что ^$ станут границами строк а не текста
s сделает так что в (.*) смогут попадать переносы строк | |
|
|
|