Различные вопросы по PHP и MySQL

242K
.
# ValekS (10.06.2017 / 19:36)
~\((.*)\)\((.*)\)~
Зачем подмаски?
.
ValekS
Ей 25
# ДоХтор (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)
ДоХтор, вот написал функцию что неправильно сделал
function udtest($skob) {

if(preg_match('~\(.*\)\(.*\)~', $skob)) {
$skobs="YES";
return $skobs;
}elseif(p
Так ты сперва определись, как в тексте должны располагаться скобки? Например твой вариант вполне правильно возвращает YES, потому что есть открывающая и закрывающая скобки и текст внутри них
function udtest($skob) { 
    if (preg_match('~\(.*\)\(.*\)|\(.*\)~', $skob)) {
        return 'YES'; 
    } else{
        return 'NO'; 
    }
}
 

echo udtest('((asd)');
.
Udesign
ДоХтор, меня надо проверят если скобка открыта и не закрыли надо выводит 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');
}
.
Hey guys! Finally I'm gonna change status!?
ДоХтор, А ты чего все поудалял? Задачу то не решил
А как быть такой строкой? ')текст() еще текст ('
.
Добавлено: 10.06.2017 / 23:31
# kantry (10.06.2017 / 23:29)
ДоХтор, А ты чего все поудалял? Задачу то не решил
А как быть такой строкой? ')текст() еще текст ('
Посты удалил, т.к. их тематика немного вышла за рамки темы.

Добавлено: 10.06.2017 / 23:33
kantry
А как быть такой строкой? ')текст() еще текст ('
Ну, мой вариант такую строку сочтёт за правильную, т.к. он просто сравнивает число парных/не парных скобок. Есть идеи?
.
Hey guys! Finally I'm gonna change status!?
ДоХтор, Дак нужен топикстартер, чего ему то конкретно нельзя пропускать
Всего: 7969