本文目錄一覽:
- 1、java和js正則的區別
- 2、js正則表達式 和java正則表達式一樣嗎
- 3、js正則轉java正則怎麼轉
- 4、如何把js正則改為java正則
- 5、用JAVA正則表達式提取javascript函數體
java和js正則的區別
?!表示當前內容右邊不包含這些字元
例如
表達式: a(?![a-zA-Z]+)
匹配字元串: abc a acd a1
匹配後的結果就是 a 和 a1 , 因為 匹配要求是 包含a,但a的右邊不能包含任何[a-zA-Z]的字元.
Java里由於字元串中的\需要先轉義,所有隻要是寫\都是兩個\
因此\\d 就是 javascript里的\d
js正則表達式 和java正則表達式一樣嗎
javascript中的正則表達式和java的正則表達式基本上是相同的,區別在於分組引用和對象,方法
具體區別:
1).javascript正則表達式創建有兩種方法:
a.顯式創建:
var re = new RegExp(“正則表達式模式串”);
re.test(要校驗或處理的源字元串);
b.隱式創建:
var re = /正則表達式模式串/;
要校驗或處理的源字元串.match(re);
2).分組捕獲對象引用方式不同
javascript也是使用”()”進行分組,但是捕獲對象用RegExp對象的$1到$99來引用捕獲對象。
附錄:常用的javascript正則表達式,java的也類似
ip地址校驗正則表達式(IPv4):
/^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])(/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])){3}$/
Email校驗正則表達式:
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(/.[a-zA-Z0-9_-]+)+$/
格式為:2010-10-08類型的日期格式校驗正則表達式:
/^/d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]/d|3[0-1])$/
格式為:23:11:34類型的時間格式校驗正則表達式:
/^([0-1]/d|2[0-3]):[0-5]/d:[0-5]/d$/
樓主結貼吧,查資料的時候看到的
js正則轉java正則怎麼轉
js正則轉java:你應該是想知道js正則表達式,在java里怎麼寫吧。
舉例:String strRegex = “^[1][3,4,5,8][0-9]{9}$”;校驗手機號碼
String str = “13977895777”;
str.matches(strRegex );
如何把js正則改為java正則
JAVA好像真不能直接和JS的一樣,不過我寫了其他的辦法,就當是從JS轉成了JAVA版的吧,呵呵
public
class
Test
{
public
static
void
main(String[]
args)
{
System.out.println(getResults(“12a4.678”));
}
public
static
int
getResults(String
s){
char
c[]
=
s.toCharArray();
if(s.length()
4){
return
0;
}
int
ls
=
0;
if
(matches(c,
“^[a-z]+$”)){
ls++;
}
if
(matches(c,
“^[0-9]+$”)){
ls++;
}
if
(matches(c,
“^[.[^a-z0-9]]+$”)){
ls++;
}
if
(s.length()
6
ls
0){
ls–;
}
return
ls;
}
public
static
boolean
matches(char
c[],
String
regex){
for
(int
i
=
0;
i
c.length;
i++)
{
if(String.valueOf(c[i]).matches(regex)){
return
true;
}
}
return
false;
}
}
用JAVA正則表達式提取javascript函數體
Pattern regex = Pattern.compile(“function\\s*?article\\(.*?\\)\\s*?\\{[^{}]*?(\\{.*?\\})*[^{}]*?\\}”, Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
把裡面的article替換成你的參數就可以了
原創文章,作者:X014B,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129407.html