gpt4 book ai didi

java - 正则表达式测试词汇零次或多次

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:12 25 4
gpt4 key购买 nike

我想将“table1”替换为“tableA”,所以我写了一个正则表达式来测试sql语句。

String sql1 = "select * from table1";
String sql2 = "select * from table1 where x=123";

String pattern = "from\\s(.*)(where|)";
System.out.println(sql1.replaceFirst(pattern, "from tableA $2"));
System.out.println(sql2.replaceFirst(pattern, "from tableA $2"));

第一个打印结果是正确的,但第二个打印结果缺少“where...”

如果我将模式更改为 String pattern = "from\\s(.*)(where)"; ,不带 |,则可以替换 sql2,但不会匹配 sql1。

如何将两种条件组合成一种模式?

最佳答案

在可选的(where|) 后添加一个星号。您现在可以忽略模式中的管道字符 |

String pattern = "from\\s(.*)(where|)\*";

String pattern = "from\\s(.*)(where)\*";

关于java - 正则表达式测试词汇零次或多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041746/

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