【发布时间】:2022-01-20 09:27:20
【问题描述】:
我有一个字符串:
{value1}+{value2}-{value3}*{value...n}
使用正则表达式,我想捕获每个括号内的值以及它们之间的运算符,我不知道会有多少个括号。
我试过了:
/(\{.*\}).*([\+|\-|\*|\/])*/mgU
但这只是让我得到值而不是运算符。我哪里做错了?
【问题讨论】:
-
尝试匹配
\{[^{}]*}|[+\/*-] -
尝试使用 2 个捕获组,其中第二个在非捕获组中
{([^{}]*)}(?:([-+*])|$)regex101.com/r/9wi6Z0/1 -
您能否确认您的字符串格式是否始终相同?
-
字符串将至少有一部分匹配 {value},但也可以有多个 {value} 匹配,由运算符 +、-、* 或 / 分隔。我的目标是识别与此模式匹配的字符串,然后将这些部分分开以供稍后在 perl 脚本中使用。