我想單獨內嵌腳本標籤分開:正則表達式 - 使preg_split越來越內嵌腳本標籤
<script>
console.log('hello');
console.log('hi!');
console.log('yo!');
</script>
<script type="text/javascript">
console.log("this is another inline script");
var hi = "cool";
console.log(hi);
</script>
下面是我使用的模式:
$scripts = preg_split('#(<script>.*?</script>|<script type="text/javascript>.*?</script>")#', $str);
但我得到這個結果:
Array
(
[0] => <script>
console.log('hello');
console.log('hi!');
console.log('yo!');
</script>
<script type="text/javascript">
console.log("this is another inline script");
var hi = "cool";
console.log(hi);
</script>
)
雖然我期待得到的東西是這樣的:
Array
(
[0] => <script>
console.log('hello');
console.log('hi!');
console.log('yo!');
</script>
[1] =>
<script type="text/javascript">
console.log("this is another inline script");
var hi = "cool";
console.log(hi);
</script>
)
我使用的模式有什麼問題?提前致謝!
更新
如果我使用s
修改我得到的是這樣的:
Array
(
[0] =>
[1] =>
<script type="text/javascript">
console.log("this is another inline script");
var hi = "cool";
console.log(hi);
</script>
)
它管理分離的2個腳本,但第一個腳本成爲一個空字符串
'*''除非使用PCRE_DOTALL'不匹配換行符。 – mario
您好,請查看我的更新。我嘗試過使用's'修飾符,但它看起來並不像它的工作 – user225269
'preg_split'刪除它匹配的部分。請參閱「PREG_SPLIT_DELIM_CAPTURE」的聯機幫助頁 – mario