我需要在Javascript中匹配一系列重复的VirtualHost
配置,例如:
...
# First VHost...
<VirtualHost *:80 *:8082>
# Any number of configs
# and set up options for
# Apache
</VirtualHost>
# Second VHost...
<VirtualHost *:80 *:8082>
# Any number of configs
# and set up options for
# Apache
</VirtualHost>
# Third VHost...
<VirtualHost *:80 *:8082>
# Any number of configs
# and set up options for
# Apache
</VirtualHost>
....
我目前的RegEx模式是:
/<VirtualHost[*:0-9\s]+>([\S\s]+)<\/VirtualHost>/g
我知道我的捕获组是我只获得一个匹配集(原始字符串)的原因,但我不知道如何捕获VirtualHost块之间的内容。
我想要输出的是一个数组:[<first vhost>, <second vhost>, <third vhost>, ...]
任何帮助都会很棒!
答案 0 :(得分:2)
使用非贪婪的正则表达式:
/<VirtualHost[*:0-9\s]+>([\S\s]+?)<\/VirtualHost>/g
差异是[\S\s]+?
vs [\S\s]+
这是一个贪婪的rexex并且尽可能匹配,直到匹配最后</VirtualHost>
。