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)*?