2010-05-29 3 views
0

Я не знаю о регулярных выражениях, я спросил здесь, что: получает либо все до первой скобки/двоеточия, либо первое слово в первой скобке. Это был ответ:Помощь с этой рег. эксп. в PHP

preg_match('/(?:^[^(:]+|(?<=^\\()[^\\s)]+)/', $var, $match); 

мне нужно улучшение, мне нужно получить или что-либо до первых круглых скобках/колон/кавычки или первое слово внутри первой скобкой.

Так что, если у меня есть что-то вроде:

$var = 'story "The Town in Hell"s Backyard';  // I get this: $match = 'story'; 
$var = "screenplay (based on)";    // I get this: $match = 'screenplay'; 
$var = "(play)";         // I get this: $match = 'play'; 
$var = "original screen";    // I get this: $match = 'original screen'; 

Спасибо!

+1

Если вы ничего не знаете о регулярном выражении, возможно, вам лучше написать небольшую функцию, которая делает то, что вы хотите, с помощью 'strstr()' и 'substr()' и т. Д. Регулярное выражение будет только более сложным и даже менее обслуживаемым, чем это уже для вас. – Tomalak

ответ

1

Ее простое изменение:

preg_match('/(?:^[^(:"]+|(?<=^\()[^\s)]+)/', $var, $match);

Я просто добавил кавычки внутри [^...] коробки, вместе с двоеточием и открытых скобок.

Смежные вопросы