用括号选择预定义的关键字
本文关键字:关键字 预定义 选择 | 更新日期: 2023-09-27 18:12:05
我有一个文本
SMA(20, V1) > 200000 AND C1 < LowerBollingerBand(20, 2)
应用正则表达式后,我需要这样的结果
SMA(20, V1) LowerBollingerBand(20, 2)
我可以通过显式定义这些关键字来选择SMA和LowerBollingerBand,就像这样
(SMA|LowerBollingerBand)('()
但是我无法选择括号和括号之间的内容
如果您的字符串不能嵌套平衡括号,您可以使用[^()]
否定的字符类来匹配(
和)
之后的任何符号,并在')
之后添加CC_5来匹配右括号:
(SMA|LowerBollingerBand)'([^()]*')
查看regex演示
:
-
(SMA|LowerBollingerBand)
-SMA
或LowerBollingerBand
-
'(
- a(
-
[^()]*
- 0+(
和)
以外的字符 -
')
- a)
.
如果有平衡嵌套的括号,使用
(SMA|LowerBollingerBand)'((?>[^()]+|(?<c>)'(|(?<-c>)'))*(?(c)(?!))')
查看这个正则表达式演示
'((?>[^()]+|(?<c>)'(|(?<-c>)'))*(?(c)(?!))')
结构匹配平衡嵌套括号,请参阅此答案的描述。更多信息可以在regular-expressions.info Balancing Groups.