Javascript正则表达式失败(循环?)
我有以下案文:Javascript正则表达式失败(循环?),javascript,regex,Javascript,Regex,我有以下案文: <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title>test file</title><meta name="GENERATOR" content="LibreOffice 4.1.4.2 (Windows)"><meta name="CREATED" content="0;0"><meta name="CHANGED"
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title>test file</title><meta name="GENERATOR" content="LibreOffice 4.1.4.2 (Windows)"><meta name="CREATED" content="0;0"><meta name="CHANGED" content="0;0"><style type="text/css">
<!--
.nicEdit-main { margin-left:55px; margin-right:36px; margin-top:18px; margin-bottom:36px }
P { margin-bottom: 0.21cm; direction: ltr; color: #000000; text-align: left; widows: 2; orphans: 2 }
P.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU }
P.cjk { font-family: "Arial", sans-serif; font-size: 12pt; so-language: zh-CN }
P.ctl { font-family: "Symbol"; font-size: 12pt; so-language: hi-IN }
TD P { margin-bottom: 0.21cm; direction: ltr; color: #000000; text-align: left; widows: 2; orphans: 2 }
TD P.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU }
TD P.cjk { font-family: "Arial", sans-serif; font-size: 12pt; so-language: zh-CN }
TD P.ctl { font-family: "Symbol"; font-size: 12pt; so-language: hi-IN }
-->
</style><div type="HEADER">
<p class="western" style="margin-bottom: 0.38cm; text-align: left;" align="LEFT">
<br><br>
</p>
</div><p style="margin-top: 0.42cm; margin-bottom: 0.42cm; text-align: center;" class="western" align="CENTER"> <span class="divider">
<b>He</b><i><span style="text-decoration: underline;"><b>-llo</b></span></i><b>, World!!!!!</b></span> </p><p style="margin-top: 0.42cm; margin-bottom: 0.42cm; text-align: center;" class="western" align="CENTER"> <span class="divider"><br></span> <span class="divider"><br></span> </p><p style="margin-top: 0.56cm; margin-bottom: 0.56cm; text-align: center;" class="western" align="CENTER"> <span class="divider">
<font size="6"><b>h1 h1 h1</b></font></span>
测试文件
他,世界
H1H1H1
以及以下正则表达式:
/<style type="text\/css">+(.*?\n.*?)+<\/style>/i
/+(.*?\n.*?)+/i
当我在regex tester上测试它时,regex正确地找到了部分。但当我试图在实时代码上执行它时,它会在regex.exe()上因超时而死机
我做错了什么?style元素是一个常规HTML元素,可以使用常规JavaScript元素选择方法提取。例如,这将获得一个包含所有
style
元素的数组,其中type
属性设置为“text/css”:
这将为您提供一个包含每个匹配元素的数组:
[
...,
...
]
要提取内部内容,只需在每个页面上使用innerText
。例如,要获取第一个匹配的style
元素的内容,您可以在[0]
索引上调用innerText
:
document.querySelectorAll('style[type="text/css"]')[0].innerText;
这些
+
在正则表达式中应该做什么?请解释一下你想做什么?是否提取style
标记之间的所有内容?你有活的样本吗?你能不能不使用常规的元素选择方法document.queryselectoral('style[type=“text/css”]”)
将获取所有type
属性设置为“text/css”的style
元素,例如。@Bergi将多行css块与code
\ncode
,因此如果code
(\n.?)+code
将是w/o+,它将不匹配整个代码
代码
section@Bergi这是个错误。一些垃圾代码<代码>(\n.*)+已使用。多次匹配上一个换行符+一个css行
document.querySelectorAll('style[type="text/css"]')[0].innerText;