好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 通過Java正則表達式去掉SQL代碼中回車換行和多余空格

通過Java正則表達式去掉SQL代碼中回車換行和多余空格

熱門標簽:惠安地圖標注 哈爾濱公司外呼系統代理 上海銷售電銷機器人軟件 山東外呼系統聯系方式 浙江營銷外呼系統有哪些 地圖標注店鋪地圖標注酒店 自己做的電銷機器人 遼寧秒客來電話機器人 淄博市張店區地圖標注
復制代碼 代碼如下:

public static void main(String[] args) {
String sql = "SELECT * FROM \n" +
" `testdb`.`foo` LIMIT 0, 100";
String s = "SELECT * FROM `testdb`.`foo` LIMIT 0, 100";
String sql2 = Pattern.compile(" {2,}").matcher(s).replaceAll(" ");
String sql3 = s.replaceAll(" {2,}"," ");
String sql4 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}"," ");;
String sql5 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}?"," ");;
String sql6 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}+"," ");;
System.out.println(sql2);
System.out.println(sql3);
System.out.println(sql4);
System.out.println(sql5);
System.out.println(sql6);
}

輸出結果:
復制代碼 代碼如下:

SELECT * FROM `testdb`.`foo` LIMIT 0, 100
SELECT * FROM `testdb`.`foo` LIMIT 0, 100
SELECT * FROM `testdb`.`foo` LIMIT 0, 100
SELECT * FROM `testdb`.`foo` LIMIT 0, 100
SELECT * FROM `testdb`.`foo` LIMIT 0, 100
[code]
Process finished with exit code 0
結果可以看出,有一個是沒有去掉多余空格的。

可見java中的正則式,同樣含義的還有多重寫法,呵呵!其實主要是不同數量詞匹配模式在作怪:

原版API文檔中寫道:

Greedy 數量詞

X? X,一次或一次也沒有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超過 m 次

Reluctant 數量詞

X?? X,一次或一次也沒有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超過 m 次

Possessive 數量詞

X?+ X,一次或一次也沒有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超過 m 次


但是,沒有對三種方式進行更詳細的說明,其實三種模式的區別如下:

Greedy :嘗試找到最長的匹配。
Reluctant :嘗試找到最短的匹配。
Possessive :也嘗試找到最長的匹配。

盡管greedy和possessive迫使一個matcher在進行第一次匹配之前讀取整個的text,greedy常常導致為了找到一個match進行多次嘗試,然而possessive讓一個matcher僅嘗試一個match一次。

下面是一個我工具中的方法:
[code]
/**
* 判斷一條SQL語句是否已經是分頁的SQL
*
* @param sql 源SQL
* @return 是已經分頁的SQL時返回ture,否則返回False;
*/
public boolean isAlreadySegmentSQL(String sql) {
return sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}", " ").matches("(?i).+LIMIT [\\d+ *|\\d *, *\\d+].+");
}

還是正則功能強悍啊!

補充:
下面這個兩個注視的正則式,和第三個語意一樣的:
復制代碼 代碼如下:

// regList.put("(?i)bit\\([2-9]\\)\\z", "byte[]");
// regList.put("(?i)bit\\(\\d{2,}\\)\\z", "byte[]");
regList.put("(?i)bit\\((\\d{2,}|[2-9])\\)\\z", "byte[]");

本文出自 “熔 巖” 博客
您可能感興趣的文章:
  • java Split 實現去除一個空格和多個空格
  • Java用split分割含一個或多個空格的字符串案例
  • java去除空格、標點符號的方法實例
  • java 對象參數去空格方式代碼實例
  • Java去除字符串中空格的方法詳解
  • JAVA 統計字符串中中文,英文,數字,空格,特殊字符的個數
  • java 使用正則表達式去除前后空格

標簽:無錫 長沙 綿陽 泰州 重慶 西安 銅川 宣城

巨人網絡通訊聲明:本文標題《通過Java正則表達式去掉SQL代碼中回車換行和多余空格》,本文關鍵詞  通過,Java,正則,表達式,去掉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《通過Java正則表達式去掉SQL代碼中回車換行和多余空格》相關的同類信息!
  • 本頁收集關于通過Java正則表達式去掉SQL代碼中回車換行和多余空格的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美日韩亚洲一区二区三区在线观看| 亚洲精品国产福利无码爆料网| 女人毛毛扒开自慰| 冲动的惩罚未删减完整版| 每天激情时| H黄肉辣H全文| 国产aⅴ无码精品一区二区三区| 亚洲精品欧美精品中文字幕| 利智a级露全乳照| 狠狠操综合网| 五月色婷婷综合狠狠爱舒服毛茸| 爽?好大?快?深点陆深| 男人亲女人下面的视频| 女人高潮一级A片免费看视频| 杨颖好深啊再用力一点| 日本伦理电影禁忌完整在线观看| 当着新郎的面被禽晕np| 免费看漫画羞羞| 韩国《密爱》未删减2022年| 日本三级韩国三级三级a级播放| 亚洲国产女人aaa毛片在线| 校花被群jian又粗又大H漫画| 亚洲一区二区三区精品动漫 | 国产一区二区三区亚洲欧美| 经典复古欧美老A片vⅰde0| 好男人www在线社区大豆网| 亚洲最大黄色网站| 爽?躁多水?快?深点车上| 亚洲福利一区| 男生的鸡鸡视频| 夫妇当面交换着做完整| 日韩三?理伦片在线| 日本熟妇无码亚洲成a人片在线| 锕锕锕水好多慢点| 对白刺激国产对白精品城中村| 暴风雨与憧憬的岳友田真希| 国产高清在线免费视频| 午夜久草| 国产又粗又猛又爽又黄| 国产+无码+精品十欧美| 老湿机电影|