繁体   English   中英

如何在 java 中拆分不区分大小写的字符串?

[英]How to split the String without case-sensitive in java?

如何在 java 中拆分不区分大小写的字符串?

String sql = SELECT * FROM employee OFFSET 0 LIMIT 25;
String[] sqlWithoutPagination = sql.split("offset");

OFFSET可以是lower-case/upper-case

使用正则表达式如下

String sql = "SELECT * FROM employee OFFset 0 LIMIT 25";
System.out.println(sql.split("(?i)offset")[0]);

您不必使用正则表达式,您可以简单地使用indexOftoLowerCase

String sql = "SELECT * FROM employee OFFSET 0 LIMIT 25";
int idx = sql.toLowerCase().indexOf("offset");
String sqlWithoutPagination = sql.substring(0, idx);

当然,您必须检查idx是否大于等于 0。

我实际上建议在不区分大小写的模式下使用String#replaceAll ,如果它们发生,只需OFFSETLIMIT子句:

String sql1 = "SELECT * FROM employee OFFSET 0 LIMIT 25";
String sql1New = sql1.replaceAll("(?i)(?:\\s+OFFSET \\d+)?\\s+LIMIT \\d+$", "");
System.out.println(sql1 + "\n" + sql1New);
String sql2 = "SELECT * FROM employee LIMIT 25";
String sql2New = sql2.replaceAll("(?i)(?:\\s+OFFSET \\d+)?\\s+LIMIT \\d+$", "");
System.out.println(sql2 + "\n" + sql2New);

这打印:

SELECT * FROM employee OFFSET 0 LIMIT 25
SELECT * FROM employee
SELECT * FROM employee LIMIT 25
SELECT * FROM employee

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM