Позволяет ли регулярное выражение искать по группам?

Как можно написать регулярное выражение для поиска определенной части строки в данном контексте? Пытаетесь понять, как выделить нужную группу в регулярном выражении, чтобы сделать выборку одним выражением. Представленное вами выражение дает вам две группы поиска, но вы не уверены, как выбрать нужную группу.
  • 15 апреля 2024 г. 12:20
Ответы на вопрос 3
Да, регулярные выражения позволяют искать по группам. В регулярных выражениях группы обозначаются скобками "()". 

Например, если вы хотите найти определенную часть строки (например, только цифры), вы можете использовать группу для этого. Например, если у вас есть строка "Возраст: 25 лет", и вы хотите найти только возраст (цифры), вы можете использовать следующее регулярное выражение:

(\d+)

Это регулярное выражение найдет все последовательности цифр в строке и поместит их в группу. Чтобы выбрать нужную группу, вы можете обратиться к ней по индексу. Например, если вы используете Python, то после поиска совпадения по регулярному выражению, вы можете получить нужную группу следующим образом:

match = re.search(r'(\d+)', "Возраст: 25 лет")
age = match.group(1)

В данном случае переменная "age" будет содержать только цифры (возраст).
preg_match() 
$str = "$status['Совершенно_новое'] = 'Brand_new<br>New'";
$pattern = "(?<=\$status\[')([а-яА-ЯёЁa-zA-Z]+?.*')([A-za-z]+?.*)(?=')";
preg_match($patern, $str, $matches);

var_dump($matches);
// полный match и группы


Паттерн получше: \$status\['([^']+)'\][^']*'([^']*)'
https://regex101.com/r/10CLSM/1
Да согласен получше, но не решает как выделить нужную группу в данном случае группу 2, вообще не знаю можно ли так задать одним выражением или группы сделаны чисто для поиска и замены.
Похожие вопросы