我正在尝试在字符串中搜索格式为
的模式{{ Control :: 123 }}
or
{{Control::123}}
or
{{ Control ::123 }}
or
{{Control :: 123}}
基本上空间可以在任何地方,但它必须以双开大括号开头,然后是单词“Control”,后跟::后跟一个以双结束大括号结尾的数字。
这就是我所做的
$pattern = '/{{ ?% ?Control ?:: ?([1-9]+([0-9]{1,2})?) ?% ?}}/i';
$subject = 'This is my subject for "{{ Control:: 132}}" ';
$matches = [];
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
我需要能够返回找到的模式,即{{ Control:: 132}}
。然后我需要能够找到号码132
我在这里做错了什么不能起作用?
答案 0 :(得分:2)
你的正则表达式不起作用,因为你没有逃脱" {"和"}"。另外你可以更简单地写它 试试这个:
resolveOne
请注意,它可能会被增强,以便在任何地方接受超过1个空格:
$pattern = '/\{\{\s?Control\s?::\s?(\d+)\s?\}\}/i';