java 正則表達(dá)式

package com.fsti.icop.util.regexp;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public final class RegExpValidatorUtils {

/*** 驗(yàn)證郵箱

* * @param 待驗(yàn)證的字符串

* @return 如果是符合的字符串,返回true,否則為false*/

public static boolean isEmail(String str) {

String regex = "^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";

return match(regex, str);

}

/*** 驗(yàn)證IP地址

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false*/

public static boolean isIP(String str) {

String num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";

String regex = "^" + num + "\\." + num + "\\." + num + "\\." + num + "$";

return match(regex, str);

}

/*** 驗(yàn)證網(wǎng)址Url

** @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false*/

public static boolean IsUrl(String str) {

String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";

return match(regex, str);

}

/**

* 驗(yàn)證電話號(hào)碼

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsTelephone(String str) {

String regex = "^(\\d{3,4}-)?\\d{6,8}$";

return match(regex, str);

}

/**

* 驗(yàn)證輸入密碼條件(字符與數(shù)據(jù)同時(shí)出現(xiàn))

* * @param 待驗(yàn)證的字符串

*?@return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsPassword(String str) {

String regex = "[A-Za-z]+[0-9]";

return match(regex, str);

}

/**

* 驗(yàn)證輸入密碼長(zhǎng)度 (6-18位)

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsPasswLength(String str) {

String regex = "^\\d{6,18}$";return match(regex, str);

}

/*** 驗(yàn)證輸入郵政編號(hào)

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsPostalcode(String str) {

String regex = "^\\d{6}$";

return match(regex, str);

}

/*

** 驗(yàn)證輸入手機(jī)號(hào)碼

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsHandset(String str) {

String regex = "^[1]+[3,5]+\\d{9}$";

return match(regex, str);

}

/**

* 驗(yàn)證輸入身份證號(hào)

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsIDcard(String str) {

String regex = "(^\\d{18}$)|(^\\d{15}$)";

return match(regex, str);

}

/*

** 驗(yàn)證輸入兩位小數(shù)

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/public static boolean IsDecimal(String str) {

String regex = "^[0-9]+(.[0-9]{2})?$";

return match(regex, str);

}/*

** 驗(yàn)證輸入一年的12個(gè)月

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsMonth(String str) {

String regex = "^(0?[[1-9]|1[0-2])$";

return match(regex, str);

}

/*

** 驗(yàn)證輸入一個(gè)月的31天

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsDay(String str) {

String regex = "^((0?[1-9])|((1|2)[0-9])|30|31)$";return match(regex, str);}

/*

** 驗(yàn)證日期時(shí)間

* * @param 待驗(yàn)證的字符串

* @return 如果是符合網(wǎng)址格式的字符串,返回true,否則為false

*/

public static boolean isDate(String str) {

// 嚴(yán)格驗(yàn)證時(shí)間格式的(匹配[2002-01-31], [1997-04-30],

// [2004-01-01])不匹配([2002-01-32], [2003-02-29], [04-01-01])

// String regex =// "^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$";

// 沒(méi)加時(shí)間驗(yàn)證的YYYY-MM-DD

// String regex =// "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";

// 加了時(shí)間驗(yàn)證的YYYY-MM-DD 00:00:00

String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";

return match(regex, str);

}

/*

** 驗(yàn)證數(shù)字輸入

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsNumber(String str) {

String regex = "^[0-9]*$";return match(regex, str);

}

/*

** 驗(yàn)證非零的正整數(shù)

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsIntNumber(String str) {

String regex = "^\\+?[1-9][0-9]*$";

return match(regex, str);

}

/*

** 驗(yàn)證大寫(xiě)字母

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsUpChar(String str) {

String regex = "^[A-Z]+$";return match(regex, str);

}

/*

** 驗(yàn)證小寫(xiě)字母

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsLowChar(String str) {

String regex = "^[a-z]+$";

return match(regex, str);

}

/*

** 驗(yàn)證驗(yàn)證輸入字母

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsLetter(String str) {

String regex = "^[A-Za-z]+$";

return match(regex, str);

}

/**

* 驗(yàn)證驗(yàn)證輸入漢字

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsChinese(String str) {

String regex = "^[\u4e00-\u9fa5],{0,}$";

return match(regex, str);

}

/*

** 驗(yàn)證驗(yàn)證輸入字符串

* * @param 待驗(yàn)證的字符串

* @return 如果是符合格式的字符串,返回true,否則為false

*/

public static boolean IsLength(String str) {

String regex = "^.{8,}$";

return match(regex, str);

}

/**

* @param regex

* 正則表達(dá)式字符串

* @param str

* 要匹配的字符串

* @return 如果str 符合 regex的正則表達(dá)式格式,返回true, 否則返回 false;

*/

private static boolean match(String regex, String str) {

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

return matcher.matches();

}

// 3. 檢查字符串重復(fù)出現(xiàn)的詞

?private void btnWord_Click(object sender, EventArgs e) {

?System.Text.RegularExpressions.MatchCollection matches =

// System.Text.RegularExpressions.Regex.Matches(label1.Text,// // @"\b(?\w+)\s+(\k)\b",

// System.Text.RegularExpressions.RegexOptions.Compiled |

// System.Text.RegularExpressions.RegexOptions.IgnoreCase);

// if (matches.Count != 0)

// {

// foreach (System.Text.RegularExpressions.Match match in matches)

// {

// string word = match.Groups["word"].Value;

// MessageBox.Show(word.ToString(),"英文單詞");

// }

// }

// else { MessageBox.Show("沒(méi)有重復(fù)的單詞"); }

//

//

// }

//

// 4. 替換字符串

//

// private void button1_Click(object sender, EventArgs e)

// {

//

// string strResult =

// System.Text.RegularExpressions.Regex.Replace(textBox1.Text,

// @"[A-Za-z]\*?", textBox2.Text);

// MessageBox.Show("替換前字符:" + "\n" + textBox1.Text + "\n" + "替換的字符:" + "\n"

// + textBox2.Text + "\n" +

//

// "替換后的字符:" + "\n" + strResult,"替換");

//

// }

//

// 5. 拆分字符串

//

// private void button1_Click(object sender, EventArgs e)

// {

// //實(shí)例: 甲025-8343243乙0755-2228382丙029-32983298389289328932893289丁

// foreach (string s in

// System.Text.RegularExpressions.Regex.Split(textBox1.Text,@"\d{3,4}-\d*"))

// {

// textBox2.Text+=s; //依次輸出 "甲乙丙丁"

// }

//

// }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末属提,一起剝皮案震驚了整個(gè)濱河市簇搅,隨后出現(xiàn)的幾起案子孽江,更是在濱河造成了極大的恐慌,老刑警劉巖画侣,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異创译,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叁熔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)床牧,“玉大人荣回,你說(shuō)我怎么就攤上這事「昕龋” “怎么了驹马?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)除秀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)算利,這世上最難降的妖魔是什么册踩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮效拭,結(jié)果婚禮上暂吉,老公的妹妹穿的比我還像新娘。我一直安慰自己缎患,他們只是感情好慕的,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著挤渔,像睡著了一般肮街。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上判导,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天嫉父,我揣著相機(jī)與錄音,去河邊找鬼眼刃。 笑死绕辖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的擂红。 我是一名探鬼主播仪际,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昵骤!你這毒婦竟也來(lái)了树碱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤变秦,失蹤者是張志新(化名)和其女友劉穎赴恨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伴栓,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伦连,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年雨饺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惑淳。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡额港,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歧焦,到底是詐尸還是另有隱情移斩,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布绢馍,位于F島的核電站向瓷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏舰涌。R本人自食惡果不足惜猖任,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓷耙。 院中可真熱鬧朱躺,春花似錦、人聲如沸搁痛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸡典。三九已至源请,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彻况,已是汗流浹背巢钓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疗垛,地道東北人症汹。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像贷腕,于是被迫代替她去往敵國(guó)和親背镇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 文章轉(zhuǎn)載地址: http://www.open-open.com/code/view/1430625516632 ...
    得起一個(gè)清新脫俗的名字閱讀 2,158評(píng)論 1 3
  • Java的正則表達(dá)式講解:(為了能看清泽裳,本文正則表達(dá)式用中文的句號(hào)代替英文句點(diǎn)) 英文句點(diǎn)符號(hào):匹配單個(gè)任意字符瞒斩。...
    紅姑娘閱讀 4,321評(píng)論 0 2
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)涮总,斷路器胸囱,智...
    卡卡羅2017閱讀 134,601評(píng)論 18 139
  • 一、校驗(yàn)數(shù)字的表達(dá)式 二瀑梗、校驗(yàn)字符的表達(dá)式 三、特殊需求表達(dá)式 一.網(wǎng)絡(luò)驗(yàn)證應(yīng)用技巧 驗(yàn)證 E-mail格式 驗(yàn)證...
    丶legend閱讀 1,357評(píng)論 0 22
  • 臉蛋和心靈都不能被忽略,既然你可以每天堅(jiān)持護(hù)膚浊伙,給肌膚補(bǔ)充營(yíng)養(yǎng),為什么不能堅(jiān)持給你的心靈也補(bǔ)充點(diǎn)營(yíng)養(yǎng)了饰豺。既然沒(méi)有條...
    不看書(shū)患者閱讀 410評(píng)論 0 0