Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 需要正则表达式来匹配HTML响应中的多个字符串_Regex_F5 - Fatal编程技术网

Regex 需要正则表达式来匹配HTML响应中的多个字符串

Regex 需要正则表达式来匹配HTML响应中的多个字符串,regex,f5,Regex,F5,我试图构建一个正则表达式来匹配HTML响应中的多个字符串。 这用于监视来自负载平衡器的网页。如果正则表达式具有匹配,负载均衡器将考虑服务器为UP,并将发送流量。 预期HTML响应的示例: HTTP/1.1 200 X-AREQUESTID: *1KIRCWLx688x71065x0 X-XSS-Protection: 1; mode=block X-FRAME-OPTIONS: SAMEORIGIN X-Content-Type-Options: nosniff Access-Control-

我试图构建一个正则表达式来匹配HTML响应中的多个字符串。 这用于监视来自负载平衡器的网页。如果正则表达式具有匹配,负载均衡器将考虑服务器为UP,并将发送流量。 预期HTML响应的示例:

HTTP/1.1 200 
X-AREQUESTID: *1KIRCWLx688x71065x0
X-XSS-Protection: 1; mode=block
X-FRAME-OPTIONS: SAMEORIGIN
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Content-Type: application/json
Transfer-Encoding: chunked
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Wed, 31 Oct 2018 11:28:14 GMT
{"state":"RUNNING"}
我想要实现的是尝试匹配
{“state”:“RUNNING”}
{“state”:“MAINTENANCE”}
HTTP/1.1200

因此,我有以下工作正则表达式,但我不知道如何将它们捆绑在一起;-)

  • \{“状态\”:“运行\”\}{“状态\”:“维护\”}
将匹配
{“状态”:“正在运行”}
{“状态”:“维护”}

  • HTTP\/1\.(0 | 1)(200 | 301 | 302)
将匹配HTTP响应代码200、301或302(例如:
HTTP/1.1200

那么现在,我如何在所有条件下构建一个超级正则表达式呢

HTTP\/1\.(0 | 1)(200 | 301 | 302)
\{“状态”:“运行状态”:“维护状态”:

有可能吗


提前感谢

组合两个正则表达式只需将它们连接起来即可。如果要允许任意字符介于两者之间,请在它们之间使用
*

假设正则表达式匹配整个响应,包括标题和正文,而不仅仅是单行,下面的内容就足够了

HTTP\/1\.(0|1) (200|301|302)\r\n(.*?)(\{\"state\":\"RUNNING\"\}|\{\"state\":\"MAINTENANCE\"\})$

这将实现以下目的:

/HTTP\/1\.(0|1) (200|301|302).*?(\{\"state\":\"RUNNING\"\}|\{\"state\":\"MAINTENANCE\"\})/s
此版本中的键是
s
标志,它允许
匹配换行符(
\n

另一个不使用标志的选项:

HTTP\/1\.(0|1) (200|301|302)[\s\S]*?(\{\"state\":\"RUNNING\"\}|\{\"state\":\"MAINTENANCE\"\})

关键是
[\s\s]*?
,它以非贪婪的方式匹配任何内容(包括新行)

请注意,默认情况下,
与换行符(
\n
)不匹配。