Я пытаюсь преобразовать существующее регулярное выражение PHP, чтобы применить его к немного другому стилю документа.
Вот оригинальный стиль документа:
**FOODS - TYPE A**
___________________________________
**PRODUCT**
1) Mi Pueblito Queso Fresco Authentic Mexican Style Fresh Cheese;
2) La Fe String Cheese
**CODE**
Sell by date going back to February 1, 2009
И успешно работающий код соответствия PHP Regex, который возвращает «true», только если строка окружена звездочками, и сохраняет каждую сторону «-» как $ m [1] и $ m [2] соответственно.
if ( preg_match('#^\*\*([^-]+)(?:-(.*))?\*\*$#', $line, $m) ) {
// only for **header - subheader** $m[2] is set.
if ( isset($m[2]) ) {
return array(TYPE_HEADER, array(trim($m[1]), trim($m[2])));
}
else {
return array(TYPE_KEY, array($m[1]));
}
}
Итак, для строки 1: $ m [1] = "FOODS" AND $ m [2] = "TYPE A";
Строка 2 будет пропущена; Строка 3: $ m [1] = "ПРОДУКТ" и т. Д.
Вопрос: Как бы я переписал приведенное выше совпадение с регулярным выражением, если бы заголовки не имели звездочки, но все еще имели заглавные буквы и содержали не менее 4 символов долго? Например:
FOODS - TYPE A
___________________________________
PRODUCT
1) Mi Pueblito Queso Fresco Authentic Mexican Style Fresh Cheese;
2) La Fe String Cheese
CODE
Sell by date going back to February 1, 2009
Спасибо.