{ func(var) and func2(var2) }
или (иногда бывает такой):
{ func(var) }
Вот моя регулярка:
есть строка:
{[\s]*( ([\S]*\(([\S]*)\)) | ([\S]*\(([\S]*)\)[\s]*(and|or)[\s]*([\S]*\(([\S]*)\))) )[\s]*} - тут с пробелами, в коде пробелов нет, для читабельности сделал
preg_match_all
Проблема в том, что в matches ест пустые элементы, вот результат:
строка - { func(var }
результат:
array(9) {
[0]=>
array(1) {
[0]=>
string(12) "{func(var) }"
}
[1]=>
array(1) {
[0]=>
string(9) "func(var)"
}
[2]=>
array(1) {
[0]=>
string(9) "func(var)"
}
[3]=>
array(1) {
[0]=>
string(3) "var"
}
[4]=>
array(1) {
[0]=>
string(0) ""
}
[5]=>
array(1) {
[0]=>
string(0) ""
}
[6]=>
array(1) {
[0]=>
string(0) ""
}
[7]=>
array(1) {
[0]=>
string(0) ""
}
[8]=>
array(1) {
[0]=>
string(0) ""
}
}
Знаю что нужно указать начало строки ^ и конец $, но вставить их более правильно как-то не выходит..