锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
a> 鍦ㄤ竴涓被涓畾涔変竴涓被錛岃繖涓被灝卞彨鍋氬唴閮ㄧ被鎴栬呭唴緗被(inner class).
b> 鍐呴儴綾誨彲浠ヨ鎴戜滑灝嗛昏緫涓婄浉鍏崇殑涓緇勭被緇勭粐璧鋒潵錛屽茍鐢卞閮ㄧ被(outer class)
聽聽 鏉ユ帶鍒跺唴閮ㄧ被鐨勫彲瑙佹?
c> 褰撴垜浠緩绔嬩竴涓猧nner class鐨勬椂鍊?鍏跺璞″氨鎷ユ湁浜嗕笌澶栭儴綾誨璞′箣闂寸殑涓縐嶅叧緋?
聽聽 榪欐槸閫氳繃涓涓壒孌婄殑this inference褰㈡垚鐨勶紝浣垮緱鍐呴儴綾誨璞″彲浠ラ殢鎰忕殑璁塊棶澶栭儴
聽聽 綾諱腑鐨勬墍鏈夋垚鍛樸?br />d> 鍦ㄥ唴閮ㄧ被涓彲浠ヨ闂閮ㄧ被鐨勭鏈夋垚鍛樺彉閲忥紝涔熷氨鏄湪鍐呴儴綾諱腑鍙互闅忔剰鐨勮闂?br />聽聽 澶栭儴綾諱腑鐨勬墍鏈夌殑鎴愬憳鏂規硶鍜屽彉閲?br />e> 鍙互鎶婂唴閮ㄧ被鏀懼埌涓涓柟娉曚腑鏉ュ畾涔夛紝浣嗘槸瀹冪殑浣跨敤鑼冨洿蹇呴』鏄湪榪欎釜鏂規硶閲?br />f> 褰撴垜浠湪涓涓柟娉曚腑瀹氫箟涓涓唴閮ㄧ被鏃訛紝濡傛灉鎴戜滑闇瑕佸湪鏂規硶涓唴閮ㄧ被鍘昏闂繖涓?br />聽聽 鏈湴鍙橀噺錛堟柟娉曚腑澹版槑鐨勫彉閲忥級鏃訛紝鎴戜滑蹇呴』鎶婅繖涓彉閲忓0鏄庝負final鎵嶈錛屼笉鐒?br />聽聽 緙栬瘧鍣ㄤ細鎶ラ敊
eg:
聽void fn(int final a)
聽{
聽聽if(true)
聽聽{
聽聽聽class Middle
聽聽聽{
聽聽聽聽private int index=70;
聽聽聽聽class Inner
聽聽聽聽{
聽聽聽聽聽private int index=60;
聽聽聽聽聽void print()
聽聽聽聽聽{
聽聽聽聽聽聽int index=80;
聽聽聽聽聽聽System.out.println(index);聽 //璁塊棶print()鏂規硶涓殑index=80鍙橀噺
聽聽聽聽聽聽System.out.println(this.index); //璁塊棶Inner綾葷殑鎴愬憳鍙橀噺index=60;
聽聽聽聽聽聽System.out.println(Middle.this.index); //璁塊棶Middle綾葷殑鎴愬憳鍙橀噺index=70;
聽聽聽聽聽聽System.out.println(Outer.this.index);聽 //璁塊棶Outer綾葷殑鎴愬憳鍙橀噺index=100;
聽聽聽聽聽}
聽聽聽聽}
聽聽聽}
聽聽}
聽}
f> 瀵逛簬Inner綾葷殑璁塊棶鏉冮檺鎴戜滑鍙互澹版槑涓烘墍鏈夌殑(protected,private,public,default)銆?br />h> 瀵逛簬鍐呴儴綾繪潵璇達紝濡傛灉璧瘋闂潈闄愪負protected錛岄偅涔堜粬鍙互鍦ㄥ悓涓涓被琚涔熷彲浠ュ湪鍚?br />聽聽 涓涓寘涓璁塊棶銆傝屽鏋滃0鏄庝負private鐨勯偅涔堥偅鍙兘鍦∣uter榪欎釜澶栭儴綾昏璁塊棶銆傛垜浠?br />聽聽 鍙互鎶婂畠鐢熷懡涓篴bstract(榪欎釜鏃跺欎笉鑳界敤Inner鐩存帴鍘誨疄渚嬪寲涓涓唴閮ㄧ被)錛屾垜浠彲浠ュ湪
聽聽 澶栭儴綾諱腑瀹氫箟涓涓被錛屼粠Inner媧劇敓鍑烘潵錛岀洿鎺ュ疄渚嬪寲銆傚綋鎴戜滑澹版槑涓篺inal錛岄偅灝變笉鑳藉啀
聽聽 媧劇敓浜嗭紝瀵逛簬鍐呴儴綾繪潵璇磋繕鍙互澹版槑涓簊tatic錛岄偅涔堣繖涓椂鍊欏氨鍙互涓嶉渶瑕佸悓鏃跺瓨鍦ㄥ閮?br />聽聽 綾葷殑瀵硅薄錛岄偅涔堣繖涓椂鍊欐垜浠篃涓嶈兘璁塊棶澶栭儴綾葷殑闈為潤鎬佺殑鎴愬憳鍙橀噺鍜屾柟娉曘傜浉褰撲簬鍒囨柇
聽聽 浜嗕笌澶栭儴鍐呭璞$殑鑱旂郴銆傞潪闈欐佺殑鍐呴儴綾諱笉鑳藉湪鍐呴儴綾繪湰韜腑瀹氫箟闈欐佺殑鏂規硶(鍙嶄箣鍙互)銆?br />聽聽 闈瀞tatic鐨勫唴閮ㄧ被涓殑鎴愬憳鍙橀噺涓嶈兘澹版槑涓簊tatic鐨勶紝鍙湪欏跺眰綾繪垨static鐨勫唴閮ㄧ被涓彲浠?br />聽聽 澹版槑涓簊tatic鐨勩?br />g> 涓轟粈涔堣浣跨敤鍐呴儴綾伙紵
聽聽 1.鍦ㄥ唴閮ㄧ被(inner class)涓彲浠ラ殢鎰忚闂閮ㄧ被涓殑鎴愬憳錛岃鎴戜滑鏇村ソ鐨勭鐞嗗拰緇勭粐鎴戜滑
聽聽 鐨勪唬鐮併傚寮轟唬鐮佺殑鍙鎬с?br />聽聽 2.鍐呴儴綾葷敤浜庡垱寤洪傞厤鍣ㄧ被,閫傞厤鍣ㄧ被鏄敤浜庡疄鐜版帴鍙g殑綾伙紝浣跨敤鍐呴儴綾繪潵瀹炵幇鎺ュ彛錛屽彲浠?br />聽聽 鏇村ソ鐨勫畾浣嶄笌鎺ュ彛鍏寵仈鐨勬柟娉曞湪浠g爜涓殑浣嶇疆銆?br />聽聽 3.鍏朵粬鐨勭敤娉?br />聽聽 a> 鎴戜滑鍙互閫氳繃鎶婂唴閮ㄧ被澹版槑涓簆rivate鏉ラ殣钘忔帴鍙g殑瀹炵幇緇嗚妭
聽聽 b> 鎴戜滑闇瑕佹淳鐢熶竴涓被錛屽悓鏃跺張闇瑕佸幓瀹炵幇涓涓帴鍙o紝濡傛灉鍩虹被涓湁涓柟娉曞拰鎺ュ彛涓殑鏂規硶
聽聽 鍚屽悕錛屼絾鏄粬浠殑鐢ㄦ硶涓嶄竴鏍鳳紝鎴戜滑灝卞彲浠ョ敤鍐呴儴綾繪潵瑙e喅銆?br />=============================================================================
鍐呴儴綾葷殑涓鑸敤娉?
class Outer聽聽聽聽聽聽聽聽聽聽聽 //Outer class
{
聽private int index=100;聽 //縐佹湁鐨勫彉閲?br />聽/*
聽class Inner聽聽聽聽聽聽聽聽聽聽 //Inner Class,independence individual
聽{聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍙互鏁翠綋鐨勬妸Inner綾葷湅鎴愭槸Outer綾葷殑涓涓垚鍛?br />聽聽private int index=50;
聽聽void print()
聽聽{
聽聽聽int index=30;
聽聽聽System.out.println(index);
聽聽聽System.out.println(this.index);
聽聽聽System.out.println(Outer.this.index);
聽聽}
聽}*/
聽/*
聽*Inner綾諱笉綆″祵濂楀眰嬈℃湁澶氭繁錛岄兘鍙互闅忔剰鐨勮闂閮ㄧ殑鎴愬憳鍙橀噺
聽*褰撴垜浠湪涓涓柟娉曚腑瀹氫箟涓涓唴閮ㄧ被鏃訛紝濡傛灉鎴戜滑闇瑕佸湪鏂規硶涓唴閮ㄧ被鍘昏闂繖涓?br />聽 *鏈湴鍙橀噺錛堟柟娉曚腑澹版槑鐨勫彉閲忥級鏃訛紝鎴戜滑蹇呴』鎶婅繖涓彉閲忓0鏄庝負final鎵嶈錛屼笉鐒?br />聽 *緙栬瘧鍣ㄤ細鎶ラ敊
聽void fn(final int a)
聽{
聽聽final int b=1;
聽聽if(true)
聽聽{
聽聽聽class Middle
聽聽聽{
聽聽聽聽private int index=70;
聽聽聽聽class Inner
聽聽聽聽{
聽聽聽聽聽private int index=60;
聽聽聽聽聽void print()
聽聽聽聽聽{
聽聽聽聽聽聽int index=80;
聽聽聽聽聽聽System.out.println(index);聽 //璁塊棶print()鏂規硶涓殑index=80鍙橀噺
聽聽聽聽聽聽System.out.println(this.index); //璁塊棶Inner綾葷殑鎴愬憳鍙橀噺index=60;
聽聽聽聽聽聽System.out.println(Middle.this.index); //璁塊棶Middle綾葷殑鎴愬憳鍙橀噺index=70;
聽聽聽聽聽聽System.out.println(Outer.this.index);聽 //璁塊棶Outer綾葷殑鎴愬憳鍙橀噺index=100;
聽聽聽聽聽聽System.out.println(a);
聽聽聽聽聽聽System.out.println(b);
聽聽聽聽聽}
聽聽聽聽}
聽聽聽}
聽聽}
聽}
/*
聽*鎴戜滑鍙互鎶婂唴閮ㄧ被鏀懼埌涓涓柟娉曚腑錛屼絾鏄畠鐨勪嬌鐢ㄨ寖鍥翠篃瀹氬湪浜嗚繖涓柟娉曠殑鑼冨洿閲岋紝鐢氳嚦鍙互鏀懼埌if()鍧?br />聽*浠g爜鍧椾腑{}涓紝瀹冨憡璇夋垜浠紝涓嶇鎴戜滑鎶奍nner()宓屽鏈夊娣憋紝瀹冮兘鍙互闅忔剰鐨勮闂閮ㄧ被涓殑鎵鏈夋垚鍛?br />聽 void fn()
聽 {
聽 class Inner聽聽聽聽聽聽聽聽聽聽
聽 {聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽private int index=50;
聽聽void print()
聽聽{
聽聽聽int index=30;
聽聽聽System.out.println(index);
聽聽聽System.out.println(this.index);
聽聽聽System.out.println(Outer.this.index);
聽聽}
聽 }聽 聽
聽 }
聽 */
聽 static class Inner聽聽聽聽聽聽
聽{聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽private int index=50;
聽聽void print()
聽聽{
聽聽聽聽int index=80;
聽聽聽聽System.out.println(index);聽 //璁塊棶print()鏂規硶涓殑index=80鍙橀噺
聽聽聽聽System.out.println(this.index); //璁塊棶Inner綾葷殑鎴愬憳鍙橀噺index=60;
聽聽聽聽System.out.println(Outer.this.index);聽 //璁塊棶Outer綾葷殑鎴愬憳鍙橀噺index=100;
聽聽}
聽}
聽
聽void print()
聽{
聽聽//Inner inner=new Inner();
聽聽//inner.print();
聽}
聽/*
聽Inner getInner()
聽{
聽聽return new Inner();
聽}
聽*/
聽/*
聽public static void main(String[] args)
聽{
聽聽Outer outer=new Outer();
聽聽//outer.print();
聽聽//Inner in=outer.getInner();榪欐槸涓鍙ラ敊璇殑浠g爜錛屽洜涓篒nner鏄畾涔夊湪Outer綾葷殑鍐呴儴鐨勶紝鎵浠ュ澶栨槸
聽聽//涓嶅彲瑙佺殑錛岃繖涓椂鍊欓渶瑕佹垜浠紝浣跨敤澶栭儴綾誨悕鏉ヨ皟鐢?br />聽聽Inner in=outer.getInner(); //鍥犱負鐜板湪main()鏂規硶鍦∣uter綾婚噷錛岃繖涓椂鍊橧nner綾誨浜巑ain()鏂規硶鏉ヨ鏄彲瑙佺殑
聽聽Inner in=new Inner();
聽聽in.print();
聽}*/
}
class Test
{
聽/*public static void main(String[] args)
聽{
聽聽Outer outer=new Outer();
聽聽//outer.print();
聽聽//Inner in=outer.getInner();榪欐槸涓鍙ラ敊璇殑浠g爜錛屽洜涓篒nner鏄畾涔夊湪Outer綾葷殑鍐呴儴鐨勶紝鎵浠ュ澶栨槸
聽聽//涓嶅彲瑙佺殑錛岃繖涓椂鍊欓渶瑕佹垜浠紝浣跨敤澶栭儴綾誨悕鏉ヨ皟鐢?br />聽聽Outer.Inner in=outer.getInner();
聽聽in.print();
聽}*/
聽public static void main(String[] args)
聽{
聽聽Outer outer=new Outer();
聽聽//outer.print();
聽聽//Inner in=outer.getInner();榪欐槸涓鍙ラ敊璇殑浠g爜錛屽洜涓篒nner鏄畾涔夊湪Outer綾葷殑鍐呴儴鐨勶紝鎵浠ュ澶栨槸
聽聽//涓嶅彲瑙佺殑錛岃繖涓椂鍊欓渶瑕佹垜浠紝浣跨敤澶栭儴綾誨悕鏉ヨ皟鐢?br />聽聽//Outer.Inner in=outer.getInner();
聽聽Outer.Inner in=outer.new Inner();聽 //鐢ㄥ閮ㄧ被瀵硅薄鏉ヤ駭鐢?br />聽聽in.print();
聽}
}
*****************************************************************************
浠庡唴閮ㄧ被媧劇敓鐨勭敤娉?
/*
聽*浠庡唴閮ㄧ被媧劇敓鐨勭敤娉?br />*/
class Car
{
聽class Wheel
聽{
聽}
}
class PlaneWheel extends Car.Wheel
{
聽PlaneWheel(Car car)
聽{
聽聽car.super();聽 //寤虹珛鍐呴儴綾誨璞″埌瀛愮被鐨勫紩鐢?br />聽}
聽public static void main(String[] args)
聽{
聽聽Car car=new Car();
聽聽PlaneWheel pw=new PlaneWheel(car);
聽}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
鍐呴儴綾誨疄鐜版帴鍙?
//鐢ㄥ唴閮ㄧ被瀹炵幇鎺ュ彛,鎺ュ彛涓嶈兘琚疄渚嬪寲
interface Animal
{
聽void eat();
聽void sleep();
}
class Zoo
{
聽private class Tiger implements Animal
聽{
聽聽public void eat()
聽聽{
聽聽聽System.out.println("Tiger eat!");
聽聽}
聽聽public void sleep()
聽聽{
聽聽聽System.out.println("Tiger sleep!");
聽聽}
聽}
聽
聽Animal getAnimal()
聽{
聽聽return new Tiger();
聽}
聽/*
聽Animal getAnimal()
聽{
聽聽return new Animal()
聽聽{聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪欐槸灝辨槸鍖垮悕鐨勭被
聽聽聽public void eat()
聽聽聽{
聽聽聽聽System.out.println("Animal eat!");
聽聽聽}
聽聽聽public void sleep()
聽聽聽{
聽聽聽聽System.out.println("Animal sleep!");
聽聽聽}
聽聽};聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪欐槸灝辨槸鍖垮悕鐨勭被
聽}*/
}
class DoTest
{
聽public static void main(String[] args)
聽{
聽聽Zoo z=new Zoo();
聽聽Animal an=z.getAnimal();
聽聽an.eat();
聽聽an.sleep();
聽}
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
鍩虹被涓湁涓柟娉曞拰鎺ュ彛涓殑鏂規硶,鍚屽悕錛屼絾鏄粬浠殑鐢ㄦ硶涓嶄竴鏍?
//鍩虹被涓湁涓柟娉曞拰鎺ュ彛涓殑鏂規硶,鍚屽悕錛屼絾鏄粬浠殑鐢ㄦ硶涓嶄竴鏍?br />interface Machine
{
聽void run();
}
class Person
{
聽public void run()
聽{
聽聽System.out.println("run");
聽}
}
class Robot extends Person
{
聽private class MachineHeart implements Machine
聽{
聽聽public void run()
聽聽{
聽聽聽System.out.println("heart run");
聽聽}
聽}
聽Machine getMachine()
聽{
聽聽return new MachineHeart();
聽}
}
class Work
{
聽public static void main(String[] args)
聽{
聽聽 Robot robot=new Robot();
聽聽 Machine m=robot.getMachine();
聽聽 m.run();
聽聽 robot.run();聽聽
聽}
}
/*
class Feeder implements Cloneable
{
聽String name;
聽int age;
聽public Feeder(String name,int age)
聽{
聽聽this.name=name;
聽聽this.age=age;
聽}
聽public Object clone()
聽{
聽聽Object o=null;
聽聽try
聽聽{
聽聽聽o=super.clone();
聽聽}
聽聽catch(CloneNotSupportedException e)
聽聽{
聽聽聽System.out.println(e.toString());
聽聽}
聽聽return o;
聽}
}
*/
class Feeder
{
聽String name;
聽int age;
聽public Feeder(String name,int age)
聽{
聽聽this.name=name;
聽聽this.age=age;
聽}
}
class Animal implements Cloneable
{
聽String name;
聽int weight;
聽Feeder f;
聽public Animal(String name,int weight,Feeder f)
聽{
聽聽this.name=name;
聽聽this.weight=weight;
聽聽this.f=f;
聽}
聽public String toString()
聽{
聽聽return "name="+name+","+"weight="+weight;
聽}
聽public Object clone()
聽{
聽聽Object o=null;
聽聽//Animal o=null;
聽聽try
聽聽{
聽聽聽o=super.clone();
聽聽}
聽聽catch(CloneNotSupportedException e)
聽聽{
聽聽聽System.out.println(e.toString());
聽聽}
聽聽//o.f=(Feeder)f.clone();
聽聽return o;
聽}
}
鎴戜滑鐪嬭緭鍑虹粨鏋?
F:\Java Develop>javac TestClone.java
F:\Java Develop>java TestClone
baidu
60
浠庣粨鏋滃彲浠ョ湅鍑烘潵鎴戜滑淇敼浜哸n2.f.name鍜宎n.f.age浣嗘槸an1鍘誨彂鐢熶簡鍙樺寲,榪欐槸鍥犱負鎴戜滑娌℃湁瀵笷eeder綾昏繘琛屽厠闅?榪欏氨鏄祬鍏嬮殕,涓轟簡瑙e喅榪欎釜闂鎴戜滑闇瑕佺敤鍒癉eeply鍏嬮殕,java榛樿鐨勫厠闅嗘柟寮忔槸嫻呭厠闅?
浠g爜濡備笅:
class TestClone
{
聽public static void main(String[] args)
聽{
聽聽Feeder f=new Feeder("google",50);
聽聽Animal an1=new Animal("Dog",50,f);
聽聽Animal an2=(Animal)an1.clone();
聽聽an2.f.name="baidu";
聽聽an2.f.age=60;
聽聽System.out.println(an1.f.name);
聽聽System.out.println(an1.f.age);
聽}
}
class Feeder implements Cloneable
{
聽String name;
聽int age;
聽public Feeder(String name,int age)
聽{
聽聽this.name=name;
聽聽this.age=age;
聽}
聽public Object clone()
聽{
聽聽Object o=null;
聽聽try
聽聽{
聽聽聽o=super.clone();
聽聽}
聽聽catch(CloneNotSupportedException e)
聽聽{
聽聽聽System.out.println(e.toString());
聽聽}
聽聽return o;
聽}
}
class Animal implements Cloneable
{
聽String name;
聽int weight;
聽Feeder f;
聽public Animal(String name,int weight,Feeder f)
聽{
聽聽this.name=name;
聽聽this.weight=weight;
聽聽this.f=f;
聽}
聽public String toString()
聽{
聽聽return "name="+name+","+"weight="+weight;
聽}
聽public Object clone()
聽{
聽聽//Object o=null;
聽聽Animal o=null;
聽聽try
聽聽{
聽聽聽o=(Animal)super.clone();
聽聽}
聽聽catch(CloneNotSupportedException e)
聽聽{
聽聽聽System.out.println(e.toString());
聽聽}
聽聽o.f=(Feeder)f.clone();
聽聽return o;
聽}
}
杈撳嚭緇撴灉濡備笅:
F:\Java Develop>javac TestClone.java
F:\Java Develop>java TestClone
google
50
java嫻呭厠闅嗘槸鎸嘽opy綾婚噷鎵鏈夋病鏈夊紩鐢ㄧ被鍨嬬殑鍙橀噺.Deeply Clone鍒欏垰濂界浉鍙?
public class TestRegex
{
聽public boolean isEmail(String email)
聽{
聽聽聽聽聽聽聽聽聽聽聽聽 //鎸囧畾浣跨敤鐨勬ā寮?br />聽聽Pattern pattern=Pattern.compile
聽聽聽聽聽聽聽聽聽聽聽 ("\\p{Digit}+@\\w+\\.\\p{Alpha}{2,3}");
聽聽String[] words=pattern.split(email);
聽聽Matcher matcher=pattern.matcher(email);
聽聽if(matcher.find()&&words.length==0)
聽聽聽 return true;
聽聽else
聽聽聽 return false;
聽}
}
鏉ョ湅鎬庝箞鐢ㄥ畠:
Code:
public class Client
{
聽public static void main(String[] args)
聽{
聽聽TestRegex regex=new TestRegex();
聽聽String s1="DuYang163@gmail.com";
聽聽String s2="feiyang@126.123.com";
聽聽System.out.println(s1+(regex.isEmail(s1)?"鏄?:"涓嶆槸")+"Email鏍煎紡!");
聽聽System.out.println(s2+(regex.isEmail(s2)?"鏄?:"涓嶆槸")+"Email鏍煎紡!");
聽}
}
涓浜涘父鐢ㄧ殑琛ㄨ揪寮忔牸寮?
鏂囧瓧(Literal): 琛ㄨ揪寮忓唴浠諱綍涓嶅叿鏈夌壒孌婃剰涔夌殑瀛楃閮借鐪嬪仛鏄竴涓枃瀛楋紝騫朵笌鑷韓鍖歸厤銆?br />閲忚瘝(Quantifier): 鏌愪簺瀛楃鎴栬呰〃杈懼紡錛屼粬浠鐢ㄦ潵璁$畻涓涓枃瀛楁垨鍒嗙粍鍙互瀛楃鍒椾腑鍑虹幇鐨勬鏁幫紝浠ヤ究璇ュ簭鍒椾笌琛ㄨ揪寮忓尮閰嶃?br />渚嬶細
? 琛ㄧず鍑虹幇涓嬈℃垨鏍規湰涓嶅嚭鐜般?br />* 琛ㄧず鍑虹幇闆舵鎴栦竴嬈′互涓?鍚竴嬈?銆?br />+ 琛ㄧず鍑虹幇涓嬈℃垨澶氭銆?br />瀛楃綾?Character class): 涓涓瓧絎︾被灝辨槸鏂規嫭鍙峰唴鐨勪竴涓瓧絎﹂泦錛屽叾涓紝鍖歸厤鍙互鏄嫭鍙峰唴鐨勪換鎰忎竴涓瓧絎︺傚彲浠ユ妸瀛楃鍜岄噺璇嶇粨鍚堣搗鏉ワ紝渚嬪錛孾acegikmoqsuwy*]
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 灝嗘槸鍙寘鍚瓧姣嶈〃涓鏁板瓧姣嶇殑浠繪剰瀛楃鍒椼傛煇浜涘瓧絎﹀垪鏄鍏堝畾涔夊ソ鐨?
\d-鏁板瓧(0鍒?)
\D錛嶉潪鏁板瓧
\s-絀虹櫧瀛楃錛屽鍒惰〃絎︽垨鎹㈣絎?br />\S-闈炵┖鐧藉瓧絎?br />\w-鍗曞瓧絎?a鍒皕,A鍒癦,0鍒?浠ュ強涓嬪垝綰?
\W-闈炲崟瀛楀瓧絎?鍏朵粬浠繪剰瀛楃)
Posix 瀛楃綾?Posix character class): 鏌愪簺瀛楃浠呭湪鐢ㄤ簬US-ASCII姣旇緝鏃舵墠鏈夋晥銆?br />渚嬪錛?br />\p{Lower}-灝忓啓瀛楃
\p{Upper}-澶у啓瀛楃
\p{ASCII}-鎵鏈堿SCII瀛楃
\p{Alpha}-瀛楃瀛楃(\p{Lower}涓嶾p{Upper}鐩哥粨鍚?
\p{Digit}-浠?鍒?鐨勬暟瀛?br />\p{Alnum}-瀛楁瘝鏁板瓧瀛楃
鑼冨洿(Range): 浣跨敤鐭嚎(dash)鏉ユ寚瀹氳寖鍥淬備緥濡傦細[A-J]琛ㄧず浠嶢鍒癑鐨勫ぇ鍐欏瓧姣嶃?br />鍚﹀畾(Negation): 浣跨敤鑴卞瓧絎琛ㄧず鍚﹀畾瀛楃銆備緥濡傦細[^A-K]琛ㄧず闄鍒癒涔嬪鐨勪換浣曞瓧絎︺?/p>