Ⅰ 郵編的正則表達式
代碼如下:
package TestRegex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test01 {
/**
* 郵政編碼正則:"^[1-9]\d{5}$"
* ^:正則開始符
* $:正則結束符
* [1-9]:范圍為1-9
* :轉移字元
* d:數字【0-9】
* X{n}:恰好n次:注意從0開始
*/
public static void main(String[] args) {
//定義正則
String str= "^[1-9]\d{5}$";
//正確的郵件編碼
String s = "471400";
//錯誤郵政編碼
String s2 ="4560200";
/**
* Pattern為模式類型,
* compile(正則)方法預編譯正則,
* 得到一個Matcher對象
*/
Pattern p =Pattern.compile(str);
//Pattern中的matcher()方法傳入要匹配的字元串與正則進行匹配i
Matcher m=p.matcher(s);
Matcher m2=p.matcher(s2);
//Matcher類中的matches()方法判斷是否匹配成功
boolean bo= m.matches();
boolean bo2= m2.matches();
//輸出匹配結果:true為成功,false為失敗
System.out.println(bo);
System.out.println(bo2);
}
}
(1)php郵編正則擴展閱讀
正則表達式簡單語法及常用正則表達式:
基本符號:
^ 表示匹配字元串的開始位置 (例外 用在中括弧中[ ] 時,可以理解為取反,表示不匹配括弧中字元串)
$ 表示匹配字元串的結束位置
* 表示匹配 零次到多次
+ 表示匹配 一次到多次 (至少有一次)
? 表示匹配零次或一次
. 表示匹配單個字元
| 表示為或者,兩項中取一項
( ) 小括弧表示匹配括弧中全部字元
[ ] 中括弧表示匹配括弧中一個字元 范圍描述 如[0-9 a-z A-Z]
{ } 大括弧用於限定匹配次數 如 {n}表示匹配n個字元 {n,}表示至少匹配n個字元 {n,m}表示至少n,最多m
轉義字元 如上基本符號匹配都需要轉義字元 如 * 表示匹配*號
w 表示英文字母和數字 W 非字母和數字
d 表示數字 D 非數字
常用的正則表達式:
匹配中文字元的正則表達式:[u4e00-u9fa5]
匹配雙位元組字元(包括漢字在內):[^x00-xff]
匹配空行的正則表達式: [s|]*
匹配HTML標記的正則表達式:/<(.*)>.*</1>|<(.*)/>/
匹配首尾空格的正則表達式:(^s*)|(s*$)
匹配IP地址的正則表達式:/(d+).(d+).(d+).(d+)/g//
匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
Ⅱ PHP正則表達式:一個匹配郵箱的正則表達式問題
尼瑪,你這個正則前面那個怎麼可能匹配得到?
我就說我看了那麼久都看不出來你是怎麼匹配到第一個的,
我這測了一下,瞎了我的眼啊。。
你自己看看:
<?php
$mid_data="[email protected]";
preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data,$matched);
echo "ok:".$matched[0];
$mid_data1="[email protected]";
preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data1,$matched);
echo "<br>ok2:".$matched[0];
?>
這是結果:
ok:[email protected]
ok2: