PHP搜索并替换正则表达式模式

时间:2013-09-10 08:23:08

标签: php regex matching

我正在尝试获取一个匹配正则表达式模式({$ ...})的字符串。但是我不希望括号和$符号返回。

例如

{$Testpath}/Testlink

应该返回

Testpath

我的正则表达式模式现在看起来像这样:

^{\$.*}$

1 个答案:

答案 0 :(得分:3)

尝试以下正则表达式:

^\{\$\K[^}]*(?=\})

Regex101 Demo

此表达式计算字符串开头^然后是文字{然后是文字$然后忽略那些使用\K锚点,然后它匹配一个或多个不是}的字符,然后它会向前看(?=\})以获取文字}

您可能不需要行尾锚$,因为您尝试匹配的文本可能不会在字符串的末尾结束,您可能不需要行开头{{1因为相反的原因导致锚点,即您尝试匹配的模式可能不在字符串或行的开头。

我认为你应该删除^^并使用全局修饰符。