如何在使用正则表达式之间删除花括号和内容?我认为以下内容会起作用。
$filename = '{test}1234';
preg_replace('/\{{^\}}*\}/', '', $filename);
在上面的示例中,我希望在以下内容之后留下:
1234
我应该提一下,花括号之间的内容可以是任意长度,所以这需要是正则表达式。
答案 0 :(得分:4)
你可以这样做: -
<?php
$filename = '{test}1234';
echo preg_replace('/{(.*?)}/', '', $filename);
?>
输出: - https://eval.in/522259
答案 1 :(得分:3)
试试这个
$str = '{test}1234';
echo $str = trim(preg_replace('/\s*\{[^}]*\}/', '', $str));
答案 2 :(得分:3)
正则表达式中的字符类由[]
而不是{}
表示。后者用于表示重复次数,如[1-3]{7,8}
表示从1到3的7到9位数的字符串。
你想要一个字符类(所有字符,除了关闭大括号外)。所以
{^\}}*
应该成为
[^}]*
只是为了解释搜索答案背后的原因......