".eqauls("")) AND u.user_email like '>' ] [IF(!">".eqauls("-6ren">
gpt4 book ai didi

java - 如何从正则表达式捕获文本?

转载 作者:行者123 更新时间:2023-11-30 06:19:53 24 4
gpt4 key购买 nike

Select * from users u 
WHERE 1=1
[IF(!"<<user_email>>".eqauls(""))
AND u.user_email like '<<user_email>>'
]
[IF(!"<<user_name>>".eqauls(""))
AND u.user_name
like '<<user_name>>'
]

在上面的文本中。如何捕获 [IF(...] 模式之间的开始和结束位置?

这个我已经试过了。但这对我不起作用:

Pattern p = Pattern.compile("(\\[IF\\(.*\\])",Pattern.DOTALL);

最佳答案

您必须使用非贪婪的 .*? 而不是贪婪的 .* 量词,此外您不需要开始和结束括号 ( ...):

Pattern p = Pattern.compile("\\[IF\\(.*?\\]", Pattern.DOTALL);
//-----------------------------------^^^

输出

[IF(!"<<user_email>>".eqauls(""))
AND u.user_email like '<<user_email>>'
]

[IF(!"<<user_name>>".eqauls(""))
AND u.user_name
like '<<user_name>>'
]

关于java - 如何从正则表达式捕获文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com