HK仅輝 发表于 2022-7-28 18:19

正则提取sql

把sql的第一select 和对应的form提取出来,把中间的其它语句抛弃,这个正则怎么写
select
....,
(select .... form ...),
(select .... form ...)
form
....

unmask 发表于 2022-7-28 19:41

sql.replace(/(?<=select).*(?=from.*?)/m, "");

HK仅輝 发表于 2022-7-28 22:37

unmask 发表于 2022-7-28 19:41
sql.replace(/(?

这个放到编辑中代码爆红,这是Java的吗

外酥内嫩 发表于 2022-7-28 23:25

Java的不会,Python的倒是会

wkdxz 发表于 2022-7-29 07:36

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
   public static void main(String[] args) {
      String str = "我的字符串";//记得替换
      Pattern p = Pattern.compile("(?<=select )[\s\S]*?(?= from)");//正则代码
      Matcher m = p.matcher(str);
      while (m.find()) {
            System.out.println(m.group());//打印截取,m.dind为截取结果
            }
   }
}

Java 我也不会,这个是使用正则生成器生成的,可以尝试下。 提供的代码from拼错了。
页: [1]
查看完整版本: 正则提取sql