Javascript 查找正则表达式组<;colgroup>;

Javascript 查找正则表达式组<;colgroup>;,javascript,regex,Javascript,Regex,我在下面有一组元素,我想找到组的 <colgroup> <col width="2184"></col> <col width="3743"> <col width="3743"> </colgroup> <colgroup> <col width="2184"> <col widcth="3743"> <col width="3743"> </c

我在下面有一组元素,我想找到组的

<colgroup>
  <col width="2184"></col>
  <col width="3743">
  <col width="3743">
</colgroup>
<colgroup>
  <col width="2184">
  <col widcth="3743">
  <col width="3743">
</colgroup>
<colgroup>
  <col width="2184">
  <col width="3743">
  <col width="3743">
</colgroup>

我想要三组
,我尝试了以下不起作用的方法

  /<colgroup>(.*?)<\/colgroup>/g 
/(.*)/g
如果添加
(.*?\n)*?
,它还将匹配
之间的新行

如果添加
(.*?\n)*?
,它还将匹配
之间的新行

您可以使用
[^]+?
匹配所有内容,包括新行

以下是您可以使用
[^]+?
匹配所有内容,包括新行


这是

实际上,您可以使用
gsm
标志作为替代,以匹配包括新行字符在内的三个组。这似乎适用于2018年9月最新版本的Chrome。但这在Firefox上不起作用(2018年9月)

m
是多行标志

s
是否点匹配所有标志

似乎有人建议在未来的Javascript版本中包含此功能:

下面是一个在Chrome上运行的示例:

let targetText=document.getElementById(“test”).innerHTML;
var reg=/(.+?)/gsm;
var结果;
while((result=reg.exec(targetText))!==null){
控制台日志(结果);
}

实际上,您可以使用
gsm
标志作为替代,以匹配包括新行字符在内的三组字符。这似乎适用于2018年9月最新版本的Chrome。但这在Firefox上不起作用(2018年9月)

m
是多行标志

s
是否点匹配所有标志

似乎有人建议在未来的Javascript版本中包含此功能:

下面是一个在Chrome上运行的示例:

let targetText=document.getElementById(“test”).innerHTML;
var reg=/(.+?)/gsm;
var结果;
while((result=reg.exec(targetText))!==null){
控制台日志(结果);
}


您需要使用
DOMDocument
而不是像现在这样以错误的方式进行操作为什么不使用XMLParser?不,我正在处理StringTry
(.?\n)*?
或使用/s标志使点与新行匹配,你能给我一个regex Fiddle示例吗?我对regex很陌生。你需要使用
DOMDocument
而不是像现在这样错误地使用它为什么不使用XMLParser?不,我正在处理StringTry
(.?\n)*?
或使用/s标志使点与新行匹配,您能给出一个正则表达式小提琴示例吗?我对正则表达式真的很陌生。您的双
*?
在性能方面不是很好,最好使用
(.|\n)*?
。所以只使用一次量词。谢谢你的建议。我在解析大型字符串时遇到了
(.|\n)*?
中的堆栈溢出错误。所以我提出了这个建议。虽然这并不是我从表中看到的,但它帮助我解决了我的问题。非常感谢。您的双精度
*?
性能不太好,最好使用
(.\n)*?
。所以只使用一次量词。谢谢你的建议。我在解析大型字符串时遇到了
(.|\n)*?
中的堆栈溢出错误。所以我提出了这个建议。虽然这并不是我从表中看到的,但它帮助我解决了我的问题。谢谢。
 /<colgroup>(.*?)<\/colgroup>/g 
(.*?|\n)*?