① java中什麼是正則表達式
正則表達式 就是將一個類型的數據 按照一定方式 寫成正則表達式的形式 這樣可以辨別數據是否符合這一類型的數據 比如我們的身份證號碼 就是有一定的規則的 這樣我們寫一個 正則表達式 和別人輸入的身份證號碼 比對 如果符合這個正則表達式的規則 就是身份證號碼
② java 正則表達式用法
先回答樓主的正則表達式吧
一個是建表語句格式如下 :
create【空格若干】table 【表名和其他信息】
正則表達式如下:create\s+table\s+.+
第二個是建索引語句格式如下 :
create【空格和字母若干】index【空格和字母下劃線等若干】
正則表達式如下:create[\sA-Za-z]+index[\sA-Za-z_]+
不過我認為樓主給定的限制不夠細,像【空格和字母下劃線等若干】這樣的說法比較模糊,上面的正則表達式可以正常匹配正確的語句,但是對於錯誤語句的限制不夠,還有進一步修改的餘地。
在JAVA中使用正則表達式時,應該import下面兩個類
import java.util.regex.Matcher;
import java.util.regex.Pattern;
另外"\"應該被替換成"\\"。
具體方法是:
String sql="create table test(id varchar(10) not null)"
String reg="create\\s+table\\s+.+";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(sql);
boolean b = m.matches();
得到的布爾值表示sql是否匹配正則表達式reg。
③ java正則表達式是什麼
java正則表達式是為\d+.{0,1}d*。需要轉義反斜杠,所以有兩個反斜杠。這個正則表達式表示整數或者小數\d+表示1個或多個0到9的數字,是整數部分至少是一位整數的整數部分0,1表示0個或1個小數點,因為點在正則表達式中表示任意字元,所以這里需要用轉義符。
使它變回原來的小數點的意思,0,1表示0或1個,也就是可以有或者沒有小數點\d*表示0個或多個0到9的數字,是小數部分,0個時表示這個數沒有小數部分,只有整數部分。
java的概念
使用單個字元串來描述。匹配一系列符合某個語句規則的字元串,定義了字元串的模式。正則表達式主要用於字元串中,為方便字元串操作,文本的復雜處理。
字元串的操作主要有四種,匹配、切割、替換、獲取。匹配一些字元串,根據題目要求。
④ JAVA,將java文件中的單行和多行注釋內容替換為空,正則表達式如何實現!
我們知道java中有三種注釋方式
1. // 單行
2. /* .......*/ 單行 或多行
3. /** .......*/ 單行 或多行
我們的目的就是把以上三種特徵的注釋替換
以下是例子
String s = 「。。。。。。。。」; // 將文件的內容賦值給s
Pattern pattern1 = Pattern.compile("//(.*)"); //特徵是所有以雙斜線開頭的
Matcher matcher1 = pattern1.matcher(s);
s = matcher1.replaceAll(""); //替換第一種注釋
Pattern pattern2 = Pattern.compile("/\\*(.*?)\\*/", Pattern.DOTALL); //特徵是以/*開始,以*/結尾,Pattern.DOTALL的意思是糊塗模式,這種模式下.(點號)匹配所有字元
Matcher matcher2 = pattern2.matcher(s);
s = matcher2.replaceAll(""); //替換第二種注釋
Pattern pattern3 = Pattern.compile("/\\*\\*(.*?)\\*/", Pattern.DOTALL); //特徵是以/**開始,以*/結尾
Matcher matcher3 = pattern3.matcher(s);
s = matcher3.replaceAll(""); //替換第三種注釋
System.out.println(s); //列印結果