正则表达式 - 在包含其他特定文本的特定字符之间查找文本

时间:2018-02-01 15:58:47

标签: regex

假设我有以下字符串:

{sometext1Asometext2}; {sometext3Bsometext4}; {sometext5Csometext6}

我想匹配这个:

{sometext3Bsometext4}

所以括号内的文字,但不是所有的匹配,只有包含B的文本。

在互联网上,我只能找到匹配2个字符之间的所有内容的示例,而不仅仅是包含内部特定字符串的文本。

'sometext'的值未知。

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

{[^}B]*B[^}]*}

Click for Demo

OR

{(?=[^}]*B)[^}]*}

Click for Demo

解释(第1个正则表达式):

  • { - 匹配{
  • [^}B]* - 匹配任何既不是}也不B
  • 的字符出现0次以上
  • B - 匹配B
  • [^}]* - 匹配任何非}
  • 字符的0次出现
  • } - 匹配}
相关问题