Php preg_匹配匹配特定字符={}[]*

Php preg_匹配匹配特定字符={}[]*,php,regex,pattern-matching,Php,Regex,Pattern Matching,这将匹配任何非字母数字字符。我只想在{}[]*=上进行匹配,而不考虑顺序和它们之间的任何其他字符。这能做到吗 我试过\=,\[,\],\{,\},\*,但似乎没有帮助 我有一个字符串,可能包含也可能不包含列出的字符。我想使用preg_match来确定字符串是否包含这些字符中的任何一个,而不考虑字符串中的顺序或位置。这是否符合您的要求 if (preg_match('/[^a-zA-Z]+/', $test4, $matches)) 如果要查找所有匹配项而不仅仅是第一个匹配项,则应使用preg\

这将匹配任何非字母数字字符。我只想在
{}[]*=
上进行匹配,而不考虑顺序和它们之间的任何其他字符。这能做到吗

我试过
\=,\[,\],\{,\},\*
,但似乎没有帮助


我有一个字符串,可能包含也可能不包含列出的字符。我想使用preg_match来确定字符串是否包含这些字符中的任何一个,而不考虑字符串中的顺序或位置。

这是否符合您的要求

if (preg_match('/[^a-zA-Z]+/', $test4, $matches))

如果要查找所有匹配项而不仅仅是第一个匹配项,则应使用
preg\u match\u all

这些字符(等号除外)是正则表达式中的控制字符。你必须以不同的方式对待他们

我建议你读这本书

要得到你想要的,试试这个

if (preg_match ('/[{}\[\]=*]+/', $test4, $matches))

我不明白你想做什么。请更清楚地写一个你想要的例子。还有你期望的输出。嗨。我有一个字符串,可能包含也可能不包含列出的字符。我想使用preg_match来确定字符串是否包含这些字符中的任何一个,而不管它们在字符串中的顺序或位置如何。我现在已经取出了卷曲<代码>如果(preg_match('/[\[\]=]+/',$test4))-这似乎有效。如果我想匹配上述内容,但在括号内包含任何单词,可以这样做吗?ie:[列表]?大括号和
*
在括号内没有特殊意义,它们不需要转义。@Barmar:开头的方括号也是一样:)
preg_match('/\[(.*)\]/', $test4, $square_matches);
preg_match('/\{(.*)\}/', $test4, $curly_matches);

// or, if this is your approach (it's hard to tell from your description)
preg_match('/([\[\{=\*](.*)[\]\}=\*])/', $test4, $matches);
preg_match('/([\[\{=\*](.*?)[\]\}=\*])/', $test4, $matches); //non-greedy