# ValekS (10.06.2017 / 19:36)Зачем подмаски?
~\((.*)\)\((.*)\)~
# ValekS (10.06.2017 / 19:36)Зачем подмаски?
~\((.*)\)\((.*)\)~
# ДоХтор (10.06.2017 / 19:36)Всегда с ними писал.
Зачем подмаски?
# ValekS (10.06.2017 / 19:38)Тут они не нужны. Подмаски нужны, если нужно получить часть искомого шаблона. Например найти текст с собакой @vanechka, а в результат включить подстроку без собаки:
Всегда с ними писал.
$text = 'Текст от @vanechka.';
$patt = '~@([^\s.,!?-]+)~iu';
$repl = '$1';
$text = preg_replace($patt, $repl, $text);
echo $text; # Udesign (10.06.2017 / 19:36)Так ты сперва определись, как в тексте должны располагаться скобки? Например твой вариант вполне правильно возвращает YES, потому что есть открывающая и закрывающая скобки и текст внутри них
ДоХтор, вот написал функцию что неправильно сделал
function udtest($skob) {
if(preg_match('~\(.*\)\(.*\)~', $skob)) {
$skobs="YES";
return $skobs;
}elseif(p
function udtest($skob) {
if (preg_match('~\(.*\)\(.*\)|\(.*\)~', $skob)) {
return 'YES';
} else{
return 'NO';
}
}
echo udtest('((asd)'); ДоХтор, меня надо проверят если скобка открыта и не закрыли надо выводит NO это правилный варианти (tekst), (tekst)(tekst), ((tekst)) и ()tekst
# Udesign (10.06.2017 / 19:51)А, ну тогда можно просто пойти путём подсчёта скобок. Сейчас напишу пример.
ДоХтор, меня надо проверят если скобка открыта и не закрыли надо выводит NO это правилный варианти (tekst), (tekst)(tekst), ((tekst)) и ()tekst
Udesign, вроде бы то, что тебе было нужно:
$need = '(asdasd) ((asdasd)) ()asdasd';
echo countBrackets($need); // YES
function countBrackets($str) {
preg_match_all('~(?<open>\()|(?<clos>\))~', $str, $all);
$open = count(array_filter($all['open']));
$clos = count(array_filter($all['clos']));
return ($open == $clos ? 'YES' : 'NO');
} ДоХтор, А ты чего все поудалял?
Задачу то не решил![]()
А как быть такой строкой? ')текст() еще текст (' ![]()
# kantry (10.06.2017 / 23:29)Посты удалил, т.к. их тематика немного вышла за рамки темы.
ДоХтор, А ты чего все поудалял?Задачу то не решил
А как быть такой строкой? ')текст() еще текст ('
kantryНу, мой вариант такую строку сочтёт за правильную, т.к. он просто сравнивает число парных/не парных скобок. Есть идеи?
А как быть такой строкой? ')текст() еще текст ('
ДоХтор, Дак нужен топикстартер, чего ему то конкретно нельзя пропускать![]()