Java 屎夸燕器塀
<貧匯准
和匯准>
Java嶄議java.util.regex淫喘噐屎夸燕器塀議庁塀謄塘。
匯倖屎夸燕器塀祥頁匯倖蒙協議忖憲會双?嬬校喘栖謄塘、臥孀賜宀譜崔忖憲堪?屎夸燕器塀聞喘蒙協議囂隈燕幣匯倖庁塀?匆瓜喘栖序佩朴沫?園辞賜侃尖猟云才方象。
java.util.regex淫麼勣淫凄參和眉倖窃?
箭泌?屎夸燕器塀(dog) 幹秀阻汽匯蛍怏?怏戦淫根"d"?"o"?才"g"。
俺資怏頁宥狛貫恣崛嘔柴麻凪蝕凄催栖園催。箭泌?壓燕器塀??A??B?C????嗤膨倖宸劔議怏?
((A)(B(C)))
(A)
(B(C))
(C)
辛參宥狛距喘matcher斤嵆議groupCount圭隈栖臥心燕器塀嗤謹富倖蛍怏。groupCount圭隈卦指匯倖int峙?燕幣matcher斤嵆輝念嗤謹倖俺資怏。
珊嗤匯倖蒙歩議怏?怏0??万悳頁旗燕屁倖燕器塀。乎怏音淫凄壓groupCount議卦指峙嶄。
Start圭隈卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資議徨會双議兜兵沫哈?end圭隈恷朔匯倖謄塘忖憲議沫哈紗1。
宸曾倖圭隈将械壓補秘忖憲堪議蝕兵聞喘。
厘断宥狛和中宸倖箭徨?栖盾瞥宸倖孔嬬?
和中議箭徨栖盾瞥宸倖孔嬬?
心和中議箭徨栖盾瞥宸倖孔嬬?
PatternSyntaxException 窃戻工阻和中議圭隈栖逸廁厘断臥心窟伏阻焚担危列。
匯倖屎夸燕器塀祥頁匯倖蒙協議忖憲會双?嬬校喘栖謄塘、臥孀賜宀譜崔忖憲堪?屎夸燕器塀聞喘蒙協議囂隈燕幣匯倖庁塀?匆瓜喘栖序佩朴沫?園辞賜侃尖猟云才方象。
java.util.regex淫麼勣淫凄參和眉倖窃?
- Pattern窃?pattern斤嵆頁匯倖屎夸燕器塀議園咎燕幣。Pattern窃短嗤巷慌更夛圭隈。勣幹秀匯倖Pattern斤嵆?低駅倬遍枠距喘凪巷慌床蓑園咎圭隈?万卦指匯倖Pattern斤嵆。乎圭隈俊鞭匯倖屎夸燕器塀恬葎万議及匯倖歌方。
- Matcher窃?Matcher斤嵆頁斤補秘忖憲堪序佩盾瞥才謄塘荷恬議哈陪。嚥Pattern窃匯劔?Matcher匆短嗤巷慌更夛圭隈。低俶勣距喘Pattern斤嵆議matcher圭隈栖資誼匯倖Matcher斤嵆。
- PatternSyntaxException?PatternSyntaxException頁匯倖掲膿崙呟械窃?万燕幣匯倖屎夸燕器塀庁塀嶄議囂隈危列。
俺資怏?
俺資怏頁委謹倖忖憲輝匯倖汽鏡汽圷序佩侃尖議圭隈?万宥狛斤凄催坪議忖憲蛍怏栖幹秀。箭泌?屎夸燕器塀(dog) 幹秀阻汽匯蛍怏?怏戦淫根"d"?"o"?才"g"。
俺資怏頁宥狛貫恣崛嘔柴麻凪蝕凄催栖園催。箭泌?壓燕器塀??A??B?C????嗤膨倖宸劔議怏?
((A)(B(C)))
(A)
(B(C))
(C)
辛參宥狛距喘matcher斤嵆議groupCount圭隈栖臥心燕器塀嗤謹富倖蛍怏。groupCount圭隈卦指匯倖int峙?燕幣matcher斤嵆輝念嗤謹倖俺資怏。
珊嗤匯倖蒙歩議怏?怏0??万悳頁旗燕屁倖燕器塀。乎怏音淫凄壓groupCount議卦指峙嶄。
幣箭?
和中議箭徨傍苧泌採貫匯倖公協議忖憲堪嶄孀欺方忖堪?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
public static void main( String args[] ){
// String to be scanned to find the pattern.
String line = "This order was places for QT3000! OK?";
String pattern = "(.*)(\d+)(.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}
塰佩潤惚泌和?Found value: This order was places for QT3000! OK? Found value: This order was places for QT300 Found value: 0
屎夸燕器塀囂隈?
和中頁Java嶄侭嗤屎夸燕器塀圷忖憲議双燕?
徨燕器塀
謄塘
^
謄塘蝕兵佩
$
謄塘潤崩佩
.
謄塘茅算佩翌侭嗤汽倖忖憲。聞喘m僉??塋俯万栖謄塘算佩憲。
[...]
謄塘凄催坪販採汽倖忖憲。
[^...]
謄塘音壓凄催坪販採汽倖忖憲。
A
屁倖忖憲堪議蝕遊
z
屁倖忖憲堪議潤崩
潤崩屁倖忖憲堪徽塋俯恷朔匯佩嶮潤憲。
re*
謄塘0賜謹倖念中議燕器塀。
re+
謄塘1賜謹倖念中議燕器塀。
re?
謄塘0賜1倖念中議燕器塀。
re{ n}
謄塘n倖念中議燕器塀。
re{ n,}
謄塘n倖賜厚謹倖念中議燕器塀。
re{ n, m}
謄塘n欺m倖念中議燕器塀。
a| b
謄塘a賜宀b。
(re)
蛍怏屎夸燕器塀旺芝廖謄塘坪否。
(?: re)
蛍怏屎夸燕器塀涙俶芝廖謄塘坪否。
(?> re)
短嗤指翻議鏡羨謄塘庁塀。
w
謄塘汽簡忖憲。
W
謄塘掲汽簡忖憲。
s
謄塘腎易。吉勺噐[
f].
S
謄塘匯倖掲腎易。
d
謄塘方忖?吉勺噐[0-9]。
D
謄塘掲方忖。
A
謄塘忖憲堪議蝕兵。
謄塘忖憲堪議潤硫。泌惚贋壓匯倖算佩憲?峪謄塘算佩憲岻念議。
z
謄塘忖憲堪議潤崩。
G
謄塘恷朔議謄塘泣。
卦指俺資怏園催“n”。
謄塘凄催翌議汽簡円順。謄塘凄催坪議曜鯉(0x08)。
B
謄塘掲汽簡円順。
, , etc.
謄塘算佩?指概憲?崙燕憲吉。
Q
柳狛?哈喘?侭嗤忖憲岷欺E。
E
潤崩Q蝕兵議哈喘。
Mather窃議圭隈?
沫哈圭隈?
沫哈圭隈戻工阻嗤喘議沫哈峙?娼鳩燕苧補秘忖憲堪嶄壓陳嬬孀欺謄塘?
會催
圭隈式傍苧
1
public int start()
卦指參念謄塘議兜兵沫哈。
卦指參念謄塘議兜兵沫哈。
2
public int start(int group)
卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資議徨會双議兜兵沫哈
卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資議徨會双議兜兵沫哈
3
public int end()
卦指恷朔謄塘忖憲岻朔議陶卞楚。
卦指恷朔謄塘忖憲岻朔議陶卞楚。
4
public int end(int group)
卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資徨會双議恷朔忖憲岻朔議陶卞楚。
卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資徨會双議恷朔忖憲岻朔議陶卞楚。
僥楼圭隈?
僥楼圭隈喘栖殊臥補秘忖憲堪旺卦指匯倖下櫛峙?燕幣頁倦孀欺乎庁塀?
會催
圭隈式傍苧
1
public boolean lookingAt()
晦編繍貫曝囃蝕遊蝕兵議補秘會双嚥乎庁塀謄塘。
晦編繍貫曝囃蝕遊蝕兵議補秘會双嚥乎庁塀謄塘。
2
public boolean find()
晦編臥孀嚥乎庁塀謄塘議補秘會双議和匯倖徨會双。
晦編臥孀嚥乎庁塀謄塘議補秘會双議和匯倖徨會双。
3
public boolean find(int start?
嶷崔緩謄塘匂?隼朔晦編臥孀謄塘乎庁塀、貫峺協沫哈蝕兵議補秘會双議和匯倖徨會双。
嶷崔緩謄塘匂?隼朔晦編臥孀謄塘乎庁塀、貫峺協沫哈蝕兵議補秘會双議和匯倖徨會双。
4
public boolean matches()
晦編繍屁倖曝囃嚥庁塀謄塘。
晦編繍屁倖曝囃嚥庁塀謄塘。
紋算圭隈?
紋算圭隈頁紋算補秘忖憲堪戦猟云議圭隈?
會催
圭隈式傍苧
1
public Matcher appendReplacement(StringBuffer sb, String replacement)
糞孖掲嶮極耶紗才紋算化帶。
糞孖掲嶮極耶紗才紋算化帶。
2
public StringBuffer appendTail(StringBuffer sb)
糞孖嶮極耶紗才紋算化帶。
糞孖嶮極耶紗才紋算化帶。
3
public String replaceAll(String replacement)
紋算庁塀嚥公協紋算忖憲堪屢謄塘議補秘會双議耽倖徨會双。
紋算庁塀嚥公協紋算忖憲堪屢謄塘議補秘會双議耽倖徨會双。
4
public String replaceFirst(String replacement)
紋算庁塀嚥公協紋算忖憲堪謄塘議補秘會双議及匯倖徨會双。
紋算庁塀嚥公協紋算忖憲堪謄塘議補秘會双議及匯倖徨會双。
5
public static String quoteReplacement(String s)
卦指峺協忖憲堪議忖中紋算忖憲堪。宸倖圭隈卦指匯倖忖憲堪?祥崧勧弓公Matcher窃議appendReplacement 圭隈匯倖忖中忖憲堪匯劔垢恬。
卦指峺協忖憲堪議忖中紋算忖憲堪。宸倖圭隈卦指匯倖忖憲堪?祥崧勧弓公Matcher窃議appendReplacement 圭隈匯倖忖中忖憲堪匯劔垢恬。
start 才end 圭隈?
和中頁匯倖斤汽簡“cat”竃孖壓補秘忖憲堪嶄竃孖肝方序佩柴方議箭徨?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
private static final String REGEX = "\bcat\b";
private static final String INPUT =
"cat cat cat cattie cat";
public static void main( String args[] ){
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
int count = 0;
while(m.find()) {
count++;
System.out.println("Match number "+count);
System.out.println("start(): "+m.start());
System.out.println("end(): "+m.end());
}
}
}
塰佩潤惚泌和? Match number 1 start(): 0 end(): 3 Match number 2 start(): 4 end(): 7 Match number 3 start(): 8 end(): 11 Match number 4 start(): 19 end(): 22辛參心欺宸倖箭徨頁聞喘汽簡円順?參鳩隠忖銚 "c" "a" "t" 旺掲叙頁匯倖熟海議簡議徨堪。万匆戻工阻匯乂購噐補秘忖憲堪嶄謄塘窟伏了崔議嗤喘佚連。
Start圭隈卦指壓參念議謄塘荷恬豚寂?喇公協怏侭俺資議徨會双議兜兵沫哈?end圭隈恷朔匯倖謄塘忖憲議沫哈紗1。
matches 才lookingAt 圭隈?
matches 才lookingAt 圭隈脅喘栖晦編謄塘匯倖補秘會双庁塀。万断議音揖頁matcher勣箔屁倖會双脅謄塘?遇lookingAt 音勣箔。宸曾倖圭隈将械壓補秘忖憲堪議蝕兵聞喘。
厘断宥狛和中宸倖箭徨?栖盾瞥宸倖孔嬬?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
private static final String REGEX = "foo";
private static final String INPUT = "fooooooooooooooooo";
private static Pattern pattern;
private static Matcher matcher;
public static void main( String args[] ){
pattern = Pattern.compile(REGEX);
matcher = pattern.matcher(INPUT);
System.out.println("Current REGEX is: "+REGEX);
System.out.println("Current INPUT is: "+INPUT);
System.out.println("lookingAt(): "+matcher.lookingAt());
System.out.println("matches(): "+matcher.matches());
}
}
塰佩潤惚泌和?Current REGEX is: foo Current INPUT is: fooooooooooooooooo lookingAt(): truematches(): false
replaceFirst 才replaceAll 圭隈?
replaceFirst 才replaceAll 圭隈喘栖紋算謄塘屎夸燕器塀議猟云。音揖議頁?replaceFirst 紋算遍肝謄塘?replaceAll 紋算侭嗤謄塘。和中議箭徨栖盾瞥宸倖孔嬬?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
private static String REGEX = "dog";
private static String INPUT = "The dog says meow. " +
"All dogs say meow.";
private static String REPLACE = "cat";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
// get a matcher object
Matcher m = p.matcher(INPUT);
INPUT = m.replaceAll(REPLACE);
System.out.println(INPUT);
}
}
塰佩潤惚泌和?The cat says meow. All cats say meow.
appendReplacement 才appendTail 圭隈?
Matcher 窃匆戻工阻appendReplacement 才appendTail 圭隈喘噐猟云紋算?心和中議箭徨栖盾瞥宸倖孔嬬?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
private static String REGEX = "a*b";
private static String INPUT = "aabfooaabfooabfoob";
private static String REPLACE = "-";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
// get a matcher object
Matcher m = p.matcher(INPUT);
StringBuffer sb = new StringBuffer();
while(m.find()){
m.appendReplacement(sb,REPLACE);
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}
塰佩潤惚泌和?-foo-foo-foo-
PatternSyntaxException 窃議圭隈?
PatternSyntaxException 頁匯倖掲膿崙呟械窃?万峺幣匯倖屎夸燕器塀庁塀嶄議囂隈危列。PatternSyntaxException 窃戻工阻和中議圭隈栖逸廁厘断臥心窟伏阻焚担危列。
會催
圭隈式傍苧
1
public String getDescription()
資函危列議宙峰。
資函危列議宙峰。
2
public int getIndex()
資函危列議沫哈。
資函危列議沫哈。
3
public String getPattern()
資函危列議屎夸燕器塀庁塀。
資函危列議屎夸燕器塀庁塀。
4
public String getMessage()
卦指謹佩忖憲堪?淫根囂隈危列式凪沫哈議宙峰、危列議屎夸燕器塀庁塀才庁塀嶄危列沫哈議辛篇晒峺幣。
卦指謹佩忖憲堪?淫根囂隈危列式凪沫哈議宙峰、危列議屎夸燕器塀庁塀才庁塀嶄危列沫哈議辛篇晒峺幣。
<貧匯准
和匯准>