Вы можете использовать регулярное выражение с \G
оператором, чтобы соответствовать несколько подстрок внутри [...]
:
(?:\[|(?!^)\G)\s*\K[2-9AQTKJ][shcd](?=[^\]]*])
См regex demo
Короче говоря, это PCRE регулярное выражение будет соответствовать тексту, который:
- - начинается с
[
или находится в конце предыдущего успешного матча следуют с нулем или более пробельных символов
[2-9AQTKJ][shcd]
- соответствует 2 символа каждый из заданных наборов
(?=[^\]]*])
- проверка положительный опережения, если происходит закрытие ]
впереди текущей позиции
PHP demo:
$re = '~(?:\[|(?!^)\G)\s*\K[2-9AQTKJ][shcd](?=[^\]]*])~';
$str = "[As 4h 8s] [ As 4h ] [As4h] As [ 4h ";
preg_match_all($re, $str, $matches);
print_r($matches[0]);
Многократное группа будет улавливать только последнее вхождение. Это то, что вы хотите? –
Какие квадратные скобки? Я не вижу квадратные скобки в вашем вопросе. Поместите текст и ваше 'regexp' в вопрос. Ссылка на внешний сайт для тестирования кода только в качестве вежливости с другими разработчиками, которые хотят вам помочь. Вопрос становится бесполезным, если удаленная ссылка исчезает или недоступна по какой-либо причине. – axiac