所以我想在字符串中捕获Total ||
和\\n|}
之间的所有内容。现在我的当前代码如下所示:
preg_match('/(Total ||)(.*?)(\\n)/', $jsonwiki, $competitors);
但我的正则表达式失败并返回一个空数组,我不明白为什么?
答案 0 :(得分:4)
我不熟悉正则表达式,我只是添加了一些转义
(Total \|\|)(.*?)(\\\\n)
https://regex101.com/r/nF2wU5/1
|
和\
转义,因为它们在正则表达式引擎中用于表示特定内容,因此如果您需要文字管道,则需要\|
答案 1 :(得分:2)
这种类型的模式需要合理的转义量,因为characters like |
是正则表达式中的运算符,所以通过添加反斜杠来逃避它们,你告诉正则表达式解释器它们应该逐字读取;字面上。
preg_match('/Total \|\|(.*)\\\\n\|}/', $jsonwiki, $competitors);
//↑ ↑ ↑↑ ↑ Backslash added