Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
php正则表达式匹配模式_Php_Regex - Fatal编程技术网

php正则表达式匹配模式

php正则表达式匹配模式,php,regex,Php,Regex,我使用下面的正则表达式来匹配下面的字符串,到目前为止还不错。现在,我如何使BAZ的内容成为可选的,以便它匹配BAZ()的情况 要使某些内容成为可选内容,您可以将其放入非捕获组(?:…),然后在组后放置问号。问号是一个量词,意思是“零或一” 换言之,改变这一点: \\\\(\w+) 为此: (?:\\\\(\w+))? 所以整个表达式变成: /FOO (\d+).+BAR (\d+).+BAZ \((?:\\\\(\w+))?\)/i 听起来您只是想将整个内容包装在一个非捕获组中,并添加一个

我使用下面的正则表达式来匹配下面的字符串,到目前为止还不错。现在,我如何使BAZ的内容成为可选的,以便它匹配BAZ()的情况


要使某些内容成为可选内容,您可以将其放入非捕获组
(?:…)
,然后在组后放置问号。问号是一个量词,意思是“零或一”

换言之,改变这一点:

\\\\(\w+)
为此:

(?:\\\\(\w+))?
所以整个表达式变成:

/FOO (\d+).+BAR (\d+).+BAZ \((?:\\\\(\w+))?\)/i

听起来您只是想将整个内容包装在一个非捕获组中,并添加一个
操作符

/FOO (\d+).+BAR (\d+).+BAZ (?:\(\\\\(\w+)\))?/i
注意,这捕获了BAZ,后面没有括号。如果您正在寻找BAZ(),请使用以下命令:

/FOO (\d+).+BAR (\d+).+BAZ \((?:\\\\(\w+))?\)/i

使用运算符“?”可能吗?我不太明白你到底想要什么你之前的问题是怎么回事?
/FOO (\d+).+BAR (\d+).+BAZ \((?:\\\\(\w+))?\)/i