java - 如何与可选出现匹配?

标签 java regex

对于构造 {123{a,b}},我想匹配 {123{}}

这是通过正则表达式完成的:{(.*?){|}}

但是:现在我想使用相同的表达式在 {a,b} 上运行并仅匹配 {}

因此,我必须以某种方式将第二个 { 设为可选。但如何呢?

我正在使用http://gskinner.com/RegExr/即时测试。

最佳答案

您可以使用以下正则表达式:

(?:{.*?)?{|}}?

这使得内大括号之外的所有内容都是可选的。

(?:{.*?)?   // Contents before the opening inner brace '{' (Optional)
 {   
   |
 }
}?          // Last brace (Optional)

请参阅 http://regexr.com?35t3r 上的演示

关于java - 如何与可选出现匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144908/

相关文章:

java - 将变量从按钮按下传递到另一个类

Java解释器?

java - 使用Java在Processing中构建HTree

java - 这将是解析以下日志文​​件的 java 正则表达式

regex - 使用正则表达式获取命令列表

regex - 如何使用 swift 正则表达式捕获 unicode 字符

Java BigDecimal divergeAndRemainder 抛出除法不可能异常

java - maven pmd 插件默认使用哪些规则集?

php - 必须有一个更好的正则表达式

python - ReGex:从重复序列中获取多个匹配