Preg Match获取总计之间的所有内容||和\\ n |}

时间:2016-08-25 22:35:53

标签: php regex preg-match

所以我想在字符串中捕获Total ||\\n|}之间的所有内容。现在我的当前代码如下所示:

preg_match('/(Total ||)(.*?)(\\n)/', $jsonwiki, $competitors);

但我的正则表达式失败并返回一个空数组,我不明白为什么?

2 个答案:

答案 0 :(得分:4)

我不熟悉正则表达式,我只是添加了一些转义

(Total \|\|)(.*?)(\\\\n)

https://regex101.com/r/nF2wU5/1

|\转义,因为它们在正则表达式引擎中用于表示特定内容,因此如果您需要文字管道,则需要\|

答案 1 :(得分:2)

这种类型的模式需要合理的转义量,因为characters like |是正则表达式中的运算符,所以通过添加反斜杠来逃避它们,你告诉正则表达式解释器它们应该逐字读取;字面上。

preg_match('/Total \|\|(.*)\\\\n\|}/', $jsonwiki, $competitors);
                 //↑ ↑     ↑↑   ↑ Backslash added

Example