@daniil14056

Как найти все подгруппы в строке регулярным выражением?

Нужно найти все подгруппы, у меня при добавлении нескольких подгрупп, 1 подгруппа сьедает все оставшиеся, то есть до последнего .
Пробывал такие шаблоны
Тестовая строка с закрывающим тегом <\/code> "\" убирается
template = /<code name=\"([^\"]+)\">([^]+)(?:<\/code>)/;
template = /<code name=\"([^\"]+)\">([^]+)(?:<\/code>)/g;
template = /(<code name=\("([^\"]+)\">([^]+)(?:<\/code>))+/;
//и еще штук 20

test_code=`<div>Какой-то код <code name=\"c+++\">
void main(){ 
  cout<<\"heelo world\";
  class A{
  	char *name;
  	A(char *n):namae(n);
  }	
}<\/code> Конец первого блока кода //  <b> СТРОКИ.  </b><div>Все</div> 
<code name="c++">
#include <iostream> 
void print(char * msg){
	cout<<msg;
<\/code>
}`;


function getCode(str){
 	var res  = str.match(/<code name=\"([^\"]+)\">([^]+)(?:<\/code>)/);
 
 	console.log(res);

 	/*if(res!=null && res[2]!=undefined && res[2]!=null)
		return {
			lang:res[1],
			code:res[2]
		}
	else{
		return null;
		}*/
}


function parse(code){

}

console.log(getCode(test_code));
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
DevMan
@DevMan
Используйте нежадный поиск - https://regex101.com/r/kwI3OL/1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы