PCRE在花括号之间匹配单个字符

时间:2018-12-06 10:52:11

标签: regex pcre

我写了一个PCRE,试图仅在大括号之间匹配美元符号($)。

我的示例文本如下: Lorem $100 ipsum dolor {value$banana} sit $500 amet.

模式(?<=\{)(.*?)(?=\})为我提供了花括号({value$banana})之间的所有内容,但我需要精确匹配两者之间的美元符号。我不需要匹配多个匹配项的模式。

我一直在尝试解决这个问题,但是在任何地方都找不到答案。预先感谢!

1 个答案:

答案 0 :(得分:3)

如果您只想在花括号内匹配一个TreeSet,就可以使用一次

$

请参见regex demo

详细信息

  • '~\{[^{}$]*\K\$(?=[^{}]*})~' -一个\{字符
  • {-除[^{}$]*{}以外的0个或更多字符
  • $-match reset operator丢弃到目前为止从匹配内存缓冲区中所有匹配的文本
  • \K-一个\$字符
  • $-正向超前,要求存在除(?=[^{}]*}){之外的任何0+字符,然后紧接当前位置右侧的}