java正則驗證
❶ java 正則法則如有驗證年份
目前仍沒有人解決1、3、5、7、8、10、12月是31天的大月問題呀
(我本是1樓)如果用正則去驗證「數值」,會很舍近求遠,不是正則的強項。需要寫很多的「向後斷言」。效率會一般甚至很低。(目前我看到的上下樓的都是有漏洞的,沒法檢驗閏月和大小月)
我所不取。
我一直用的這個:
static public boolean isValidDate(
int year, int mon, int day,
short year_min,short year_max,
StringBuffer msg)
{
if(year<year_min || year>year_max)
{
msg.append("年份必須在("+
year_min+"~"+year_max+
")之間,輸入值("+year+")無效\n");
return false;
}else{//
switch(mon){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:{
if(day<1 || day>31){
msg.append("日號必須在(1~31)之間,輸入值("+day+")無效\n");
return false;
}
}break;
case 2:{
if(isLeapYear(year) && day>29){
msg.append("閏年的閏二月日號必須在(1~29)之間,"+year+"是閏年,輸入值("+day+")無效\n");
return false; }else if(day>28){
msg.append("非閏年的閏二月的日號必須在(1~28)之間,"+year+"不是閏年,輸入值("+day+")無效\n");
return false;
}
}break;
case 4:case 6:case 9:case 11:{
if(day<1 || day>30){
msg.append("日號必須在(1~30)之間,輸入值("+day+")無效\n");
return false;
}
}break;
default:{
msg.append("月份必須在(1~12)之間,輸入值("+mon+")無效\n");
return false;
}
}
}
return true;
}
static public boolean isLeapYear(int year){
return (year%4==0 && year%100!=0)|| year%400==0;
}
包好。
❷ java中的正則表達式問題 怎麼驗證密碼必須由字母 數字或下劃線開頭,密碼可以隨便組合
正則表達式,最簡單的寫法就是:
\w+
表示匹配 字母 數字 下劃線 對於字元個數,至少要1個
java的完整代碼,就不給你寫了。
因為之前給很多人,花了時間寫了完整代碼,結果
柏 渡 嗎 壁 西 通 啦 機,直接就屏蔽了,導致無法發布內容了。
你自己去寫完整代碼吧。
❸ java 正則驗證IP地址是不是合法的怎麼寫
String ip = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
Pattern pattern = Pattern.compile(ip);
Matcher matcher = pattern.matcher("192.168.0.150");
matcher.matches();//驗證結果返回ture或者false
❹ java中用正則表達式驗證數字規律,求正則表達式
以下正則均驗證11位數字,數字中不能有空格等其它字元,均按照java語法使用兩個反斜杠轉義
驗證AA
^(?=.*(.)\\1)1[358][0-9]{9}$
驗證AABB
^(?=.*(.)\\1(.)\\2)1[358][0-9]{9}$
驗證ABC
^(?=.*(.)(?!\\1)(.)(?!\\2))1[358][0-9]{9}$
驗證符合ABC,也符合 AA
^(?=.*(.)(?!\\1)(.)(?!\\2))(?=.*(.)\\3)1[358][0-9]{9}$
驗證尾數為6
^1[358][0-9]{8}6$
驗證尾數為8
^1[358][0-9]{8}8$
驗證尾數不為4
^1[358][0-9]{8}[0-35-9]$
❺ 怎麼用java判斷一個字元串是正則表達式
我猜您問的問題應該是:怎麼驗證一個字元串是否符合正則表達式?
如果是這樣的話,我舉個例子:
String regex = "http://(([a-zA-z0-9]|-){1,}\\.){1,}[a-zA-z0-9]{1,}-*" ;
return match( regex ,str );
regex就是正則表達式,符合則返回true,不然則返回false。
❻ 我用Java的正則表達式驗證日期,可是程序不正確,不知哪裡錯誤,希望懂Java的幫忙指點迷津
packagep1;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.NoSuchElementException;
importjava.util.Scanner;
publicclassFilterData
{
ArrayList<String>list=newArrayList<String>();
privatestaticScannerinput;
privateStringpatternString="^\d{4}\-\d{2}\-\d{2}$";
Stringtemp;
publicvoidreadData(StringfileName)
{
try
{
input=newScanner(newFile(fileName));
}
catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
try
{
while(input.hasNextLine())
{
temp=input.nextLine().trim();
if(temp.matches(patternString))
{
list.add(temp);
}
}
}
catch(NoSuchElementExceptione)
{
e.printStackTrace();
}
catch(IllegalStateExceptione)
{
e.printStackTrace();
}
}
publicvoidprintData(StringfileName)
{
try
{
FileWriterfileWriter=newFileWriter(fileName);
fileWriter.write(list.toString());
fileWriter.flush();
fileWriter.close();
}
catch(IOExceptione)
{
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args)
{
FilterDatafilterData=newFilterData();
filterData.readData("text.txt");
filterData.printData("text1.txt");
System.out.println(filterData.list);
}
}
❼ 在java後台,用正則表達式驗證身份證
這個是正則表達式,給你段代碼,你自己琢磨吧!
//正則表達式 校驗是否存在非法字元
private String checkPattern(String str){
String len;
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】『;:」「』。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
len=m.replaceAll("").trim();
return len;
}
❽ java 正則匹配字元是否為純數字
java 正則匹配字元為純數字方法:
定義正則表達式為:
Stringreg="^\d+$"
獲取要判斷的字元串:
Stringstr;//可以通過Scanner從控制台輸入,也可以用字元串常量進行初始化
調用字元串的matches方法判斷字元串為純數字情況:
str.matches(reg);
如果是純數字返回為true,否則返回為false;
❾ java中驗證是否為正整數的正則表達式
非零正整數
public static boolean IsIntNumber(String str) {
String regex = "^\\+?[1-9][0-9]*$";
return match(regex, str);
}