A. 濡備綍浣跨敤姝e垯琛ㄨ揪寮
鍦⊿un鐨凧ava JDK 1.40鐗堟湰涓锛孞ava鑷甯︿簡鏀鎸佹e垯琛ㄨ揪寮忕殑鍖咃紝鏈鏂囧氨鎶涚爾寮曠帀鍦颁粙缁嶄簡濡備綍浣跨敤java.util.regex鍖呫
鍙绮楃暐浼拌′竴涓嬶紝闄や簡鍋跺皵鐢↙inux鐨勫栵紝鍏朵粬Linu x鐢ㄦ埛閮戒細閬囧埌姝e垯琛ㄨ揪寮忋傛e垯琛ㄨ揪寮忔槸涓鏋佺寮哄ぇ宸ュ叿锛岃屼笖鍦ㄥ瓧绗︿覆妯″紡-鍖归厤鍜屽瓧绗︿覆妯″紡-鏇挎崲鏂归潰瀵屾湁寮规с傚湪Unix涓栫晫閲岋紝姝e垯琛ㄨ揪寮忓嚑涔庢病鏈変粈涔堥檺鍒讹紝鍙鑲瀹氱殑鏄锛屽畠搴旂敤闈炲父涔嬪箍娉涖
姝e垯琛ㄨ揪寮忕殑寮曟搸宸茶璁稿氭櫘閫氱殑Unix宸ュ叿鎵瀹炵幇锛屽寘鎷琯rep锛宎wk锛寁i鍜孍macs绛夈傛ゅ栵紝璁稿氫娇鐢ㄦ瘮杈冨箍娉涚殑鑴氭湰璇瑷涔熸敮鎸佹e垯琛ㄨ揪寮忥紝姣斿侾ython锛孴cl锛孞avaScript锛屼互鍙婃渶钁楀悕鐨凱erl銆
鎴戝緢鏃╀互鍓嶅氨鏄涓狿erl鏂归潰鐨勯粦瀹锛屽傛灉浣犲拰鎴戜竴鏍疯瘽锛屼綘涔熶細闈炲父渚濊禆浣犳墜杈圭殑杩欎簺寮哄ぇ鐨則ext-munging宸ュ叿銆傝繎鍑犲勾鏉ワ紝鍍忓叾浠栫▼搴忓紑鍙戣呬竴鏍凤紝鎴戜篃瓒婃潵瓒婂叧娉↗ava鐨勫紑鍙戙
Java浣滀负涓绉嶅紑鍙戣瑷锛屾湁璁稿氬煎緱鎺ㄨ崘鐨勫湴鏂癸紝浣嗘槸瀹冧竴鐩翠互鏉ユ病鏈夎嚜甯﹀规e垯琛ㄨ揪寮忕殑鏀鎸併傜洿鍒版渶杩戯紝鍊熷姪浜庣涓夋柟鐨勭被搴擄紝Java寮濮嬫敮鎸佹e垯琛ㄨ揪寮忥紝浣嗚繖浜涚涓夋柟鐨勭被搴撻兘涓嶄竴鑷淬佸吋瀹规у樊锛岃屼笖缁存姢浠g爜璧锋潵寰堢碂绯曘傝繖涓缂虹偣锛屽规垜閫夋嫨Java浣滀负棣栬佺殑寮鍙戝伐鍏锋潵璇达紝涓鐩存槸涓宸ㄥぇ鐨勯【铏戜箣澶勩
浣犲彲浠ユ兂璞★紝褰撴垜鐭ラ亾Sun鐨凧ava JDK 1.40鐗堟湰鍖呭惈浜唈ava.util.regex(涓涓瀹屽叏寮鏀俱佽嚜甯︾殑姝e垯琛ㄨ揪寮忓寘)鏃讹紝鏄澶氫箞鐨勯珮鍏!寰堟悶绗戠殑璇达紝鎴戣姳濂戒簺鏃堕棿鍘绘寲鎺樿繖涓琚闅愯棌璧锋潵鐨勫疂鐭炽傛垜闈炲父鎯婂囩殑鏄锛孞ava杩欐牱鐨勪竴涓寰堝ぇ鏀硅繘(鑷甯︿簡java.util.regex鍖)涓轰粈涔堜笉澶氬叕寮涓鐐瑰憿?!
鏈杩戯紝Java鍙岃剼閮借烦杩涗簡姝e垯琛ㄨ揪寮忕殑涓栫晫銆俲ava.util.regex鍖呭湪鏀鎸佹e垯琛ㄨ揪涔熸湁瀹冪殑杩囦汉涔嬪勶紝鍙﹀朖ava涔熸彁渚涜︾粏鐨勭浉鍏宠存槑鏂囨。銆備娇寰楁湨鏈﹁儳鑳х殑regex绁炵樻櫙璞′篃鎱㈡參琚鎷ㄥ紑銆傛湁涓浜涙e垯琛ㄨ揪寮忕殑鏋勬垚(鍙鑳芥渶鏄捐憲鐨勬槸锛屽湪浜庣硡鍚堜簡瀛楃︾被搴)鍦≒erl閮芥壘涓嶅埌銆
鍦╮egex鍖呬腑锛屽寘鎷浜嗕袱涓绫伙紝Pattern(妯″紡绫)鍜孧atcher(鍖归厤鍣ㄧ被)銆侾attern绫绘槸鐢ㄦ潵琛ㄨ揪鍜岄檲杩版墍瑕佹悳绱㈡ā寮忕殑瀵硅薄锛孧atcher绫绘槸鐪熸e奖鍝嶆悳绱㈢殑瀵硅薄銆傚彟鍔犱竴涓鏂扮殑渚嬪栫被锛孭atternSyntaxException锛屽綋閬囧埌涓嶅悎娉曠殑鎼滅储妯″紡鏃讹紝浼氭姏鍑轰緥澶栥
鍗充娇瀵规e垯琛ㄨ揪寮忓緢鐔熸倝锛屼綘浼氬彂鐜帮紝閫氳繃java浣跨敤姝e垯琛ㄨ揪寮忎篃鐩稿綋绠鍗曘傝佽存槑鐨勪竴鐐规槸锛屽归偅浜涜玃erl鐨勫崟琛屽尮閰嶆墍瀹犲潖鐨凱erl鐙傜儹鐖卞ソ鑰呮潵璇达紝鍦ㄤ娇鐢╦ava鐨剅egex鍖呰繘琛屾浛鎹㈡搷浣滄椂锛屼細姣斾粬浠鎵浠ュ墠甯哥敤鐨勬柟娉曡垂浜嬩簺銆
鏈鏂囩殑灞闄愪箣澶勶紝瀹冧笉鏄涓绡囨e垯琛ㄨ揪寮忕敤娉曠殑瀹屽叏鏁欑▼銆傚傛灉璇昏呰佸规e垯琛ㄨ揪杩涗竴姝ヤ簡瑙g殑璇濓紝鎺ㄨ崘闃呰籎effrey Frieldl鐨凪astering Regular Expressions锛岃ヤ功鐢監鈥橰eilly鍑虹増绀惧嚭鐗堛傛垜涓嬮潰灏变妇涓浜涗緥瀛愭潵鏁欒昏呭備綍浣跨敤姝e垯琛ㄨ揪寮忥紝浠ュ強濡備綍鏇寸畝鍗曞湴鍘讳娇鐢ㄥ畠銆
璁捐′竴涓绠鍗曠殑琛ㄨ揪寮忔潵鍖归厤浠讳綍鐢佃瘽鍙风爜鏁板瓧鍙鑳芥槸姣旇緝澶嶆潅鐨勪簨鎯咃紝鍘熷洜鍦ㄤ簬鐢佃瘽鍙风爜鏍煎紡鏈夊緢澶氱嶆儏鍐点傛墍鏈夊繀椤婚夋嫨涓涓姣旇緝鏈夋晥鐨勬ā寮忋傛瘮濡:(212) 555-1212锛 212-555-1212鍜212 555 1212锛屾煇浜涗汉浼氳や负瀹冧滑閮芥槸绛変环鐨勩
棣栧厛璁╂垜浠鏋勬垚涓涓姝e垯琛ㄨ揪寮忋備负绠鍗曡捣瑙侊紝鍏堟瀯鎴愪竴涓姝e垯琛ㄨ揪寮忔潵璇嗗埆涓嬮潰鏍煎紡鐨勭數璇濆彿鐮佹暟瀛:(nnn)nnn-nnnn銆
绗涓姝ワ紝鍒涘缓涓涓猵attern瀵硅薄鏉ュ尮閰嶄笂闈㈢殑瀛愬瓧绗︿覆銆備竴鏃︾▼搴忚繍琛屽悗锛屽傛灉闇瑕佺殑璇濓紝鍙浠ヨ╄繖涓瀵硅薄涓鑸鍖栥傚尮閰嶄笂闈㈡牸寮忕殑姝e垯琛ㄨ揪鍙浠ヨ繖鏍锋瀯鎴:(\d{3})\s\d{3}-\d{4}锛屽叾涓\d鍗曞瓧绗︾被鍨嬬敤鏉ュ尮閰嶄粠0鍒9鐨勪换浣曟暟瀛楋紝鍙﹀杮3}閲嶅嶇﹀彿锛屾槸涓绠渚跨殑璁板彿锛岀敤鏉ヨ〃绀烘湁3涓杩炵画鐨勬暟瀛椾綅锛屼篃绛夋晥浜(\d\d\d)銆\s涔熷彟澶栦竴涓姣旇緝鏈夌敤鐨勫崟瀛楃︾被鍨嬶紝鐢ㄦ潵鍖归厤绌烘牸锛屾瘮濡係pace閿锛宼ab閿鍜屾崲琛岀︺
鏄涓嶆槸寰堢畝鍗?浣嗘槸锛屽傛灉鎶婅繖涓姝e垯琛ㄨ揪寮忕殑妯″紡鐢ㄥ湪java绋嬪簭涓锛岃繕瑕佸仛涓や欢浜嬨傚筳ava鐨勮В閲婂櫒鏉ヨ达紝鍦ㄥ弽鏂滅嚎瀛楃(\)鍓嶇殑瀛楃︽湁鐗规畩鐨勫惈涔夈傚湪java涓锛屼笌regex鏈夊叧鐨勫寘锛屽苟涓嶉兘鑳界悊瑙e拰璇嗗埆鍙嶆枩绾垮瓧绗(\)锛屽敖绠″彲浠ヨ瘯璇曠湅銆備絾涓洪伩鍏嶈繖涓鐐癸紝鍗充负浜嗚╁弽鏂滅嚎瀛楃(\)鍦ㄦā寮忓硅薄涓琚瀹屽叏鍦颁紶閫掞紝搴旇ョ敤鍙屽弽鏂滅嚎瀛楃(\)銆傛ゅ栧渾鎷鍙峰湪姝e垯琛ㄨ揪涓涓ゅ眰鍚涔夛紝濡傛灉鎯宠╁畠瑙i噴涓哄瓧闈涓婃剰鎬(鍗冲渾鎷鍙)锛屼篃闇瑕佸湪瀹冨墠闈㈢敤鍙屽弽鏂滅嚎瀛楃(\)銆備篃灏辨槸鍍忎笅闈㈢殑涓鏍:
\\(\\d{3}\\)\\s\\d{3}-\\d{4}
鐜板湪浠嬬粛鎬庢牱鍦╦ava浠g爜涓瀹炵幇鍒氭墠鎵璁茬殑姝e垯琛ㄨ揪寮忋傝佽颁綇鐨勪簨锛屽湪鐢ㄦe垯琛ㄨ揪寮忕殑鍖呮椂锛屽湪浣犳墍瀹氫箟鐨勭被鍓嶉渶瑕佸寘鍚璇ュ寘锛屼篃灏辨槸杩欐牱鐨勪竴琛:
import java.util.regex.*;
涓嬮潰鐨勪竴娈典唬鐮佸疄鐜扮殑鍔熻兘鏄锛屼粠涓涓鏂囨湰鏂囦欢閫愯岃诲叆锛屽苟閫愯屾悳绱㈢數璇濆彿鐮佹暟瀛楋紝涓鏃︽壘鍒版墍鍖归厤鐨勶紝鐒跺悗杈撳嚭鍦ㄦ帶鍒跺彴銆
BufferedReader in;
Pattern pattern = Pattern.compile("\\(\\d{3}\\)\\s\\d{3}-\\d{4}");
in = new BufferedReader(new FileReader("phone"));
String s;
while ((s = in.readLine()) != null)
{
Matcher matcher = pattern.matcher(s);
if (matcher.find())
{
System.out.println(matcher.group());
}
}
in.close();
瀵归偅浜涚啛鎮夌敤Python鎴朖avascript鏉ュ疄鐜版e垯琛ㄨ揪寮忕殑浜烘潵璇达紝杩欐典唬鐮佸緢骞冲父銆傚湪Python鍜孞avascript杩欎簺璇瑷涓锛屾垨鑰呭叾浠栫殑璇瑷锛岃繖浜涙e垯琛ㄨ揪寮忎竴鏃︽槑纭鍦扮紪璇戣繃鍚庯紝浣犳兂鐢ㄥ埌鍝閲岄兘鍙浠ャ備笌Perl鐨勫崟姝ュ尮閰嶇浉姣旓紝鐪嬭捣鏉ュ氬氬仛浜嗕簺宸ヤ綔锛屼絾杩欏苟涓嶅緢璐逛簨銆
find()鏂规硶锛屽氨鍍忎綘鎵鎯宠薄鐨勶紝鐢ㄦ潵鎼滅储涓庢e垯琛ㄨ揪寮忕浉鍖归厤鐨勪换浣曠洰鏍囧瓧绗︿覆锛実roup()鏂规硶锛岀敤鏉ヨ繑鍥炲寘鍚浜嗘墍鍖归厤鏂囨湰鐨勫瓧绗︿覆銆傚簲娉ㄦ剰鐨勬槸锛屼笂闈㈢殑浠g爜锛屼粎鐢ㄥ湪姣忚屽彧鑳藉惈鏈変竴涓鍖归厤鐨勭數璇濆彿鐮佹暟瀛楀瓧绗︿覆鏃躲傚彲浠ヨ偗瀹氱殑璇达紝java鐨勬e垯琛ㄨ揪寮忓寘鑳界敤鍦ㄤ竴琛屽惈鏈夊氫釜鍖归厤鐩鏍囨椂鐨勬悳绱銆傛湰鏂囩殑鍘熸剰鍦ㄤ簬涓句竴浜涚畝鍗曠殑渚嬪瓙鏉ユ縺璧疯昏呰繘涓姝ュ幓瀛︿範java鑷甯︾殑姝e垯琛ㄨ揪寮忓寘锛屾墍浠ュ规ゅ氨娌℃湁杩涜屾繁鍏ョ殑鎺㈣ㄣ
杩欑浉褰撴紓浜鍚! 浣嗘槸寰堥仐鎲剧殑鏄锛岃繖浠呮槸涓鐢佃瘽鍙风爜鍖归厤鍣ㄣ傚緢鏄庢樉锛岃繕鏈変袱鐐瑰彲浠ユ敼杩涖傚傛灉鍦ㄧ數璇濆彿鐮佺殑寮澶达紝鍗冲尯浣嶅彿鍜屾湰鍦板彿鐮佷箣闂村彲鑳戒細鏈夌┖鏍笺傛垜浠涔熷彲鍖归厤杩欎簺鎯呭喌锛屽垯閫氳繃鍦ㄦe垯琛ㄨ揪寮忎腑鍔犲叆\s?鏉ュ疄鐜帮紝鍏朵腑?鍏冨瓧绗﹁〃绀哄湪妯″紡鍙鑳芥湁0鎴1涓绌烘牸绗︺
绗浜岀偣鏄锛屽湪鏈鍦板彿鐮佷綅鐨勫墠涓変綅鍜屽悗鍥涗綅鏁板瓧闂存湁鍙鑳芥槸绌烘牸绗︼紝鑰屼笉鏄杩炲瓧鍙凤紝鏇存湁鑳滆咃紝鎴栨牴鏈灏辨病鏈夊垎闅旂︼紝灏辨槸7浣嶆暟瀛楄繛鍦ㄤ竴璧枫傚硅繖鍑犵嶆儏鍐碉紝鎴戜滑鍙浠ョ敤(-|)?鏉ヨВ鍐炽傝繖涓缁撴瀯鐨勬e垯琛ㄨ揪寮忓氨鏄杞鎹㈠櫒锛屽畠鑳藉尮閰嶄笂闈㈡墍璇寸殑鍑犵嶆儏鍐点傚湪()鑳藉惈鏈夌¢亾绗|鏃讹紝瀹冭兘鍖归厤鏄鍚﹀惈鏈夌┖鏍肩︽垨杩炲瓧绗︼紝鑰屽熬閮ㄧ殑?鍏冨瓧绗﹁〃绀烘槸鍚︽牴鏈娌℃湁鍒嗛殧绗︾殑鎯呭喌銆
鏈鍚庯紝鍖轰綅鍙蜂篃鍙鑳芥病鏈夊寘鍚鍦ㄥ渾鎷鍙峰唴锛屽规ゅ彲浠ョ畝鍗曞湴鍦ㄥ渾鎷鍙峰悗闄勪笂?鍏冨瓧绗︼紝浣嗚繖涓嶆槸涓涓寰堝ソ鐨勮В鍐虫柟娉曘傚洜涓哄畠涔熷寘鍚浜嗕笉閰嶅圭殑鍦嗘嫭鍙凤紝姣斿"(555" 鎴 "555)"銆傜浉鍙嶏紝鎴戜滑鍙浠ラ氳繃鍙︿竴绉嶈浆鎹㈠櫒鏉ュ己杩璁╃數璇濆彿鐮佹槸鍚﹀甫鏈夋湁鍦嗘嫭鍙:(\(\d{3}\)|\d{3})銆傚傛灉鎴戜滑鎶婁笂闈浠g爜涓鐨勬e垯琛ㄨ揪寮忕敤杩欎簺鏀硅繘鍚庣殑鏉ユ浛鎹㈢殑璇濓紝涓婇潰鐨勪唬鐮佸氨鎴愪簡涓涓闈炲父鏈夌敤鐨勭數璇濆彿鐮佹暟瀛楀尮閰嶅櫒:
Pattern pattern =
Pattern.compile("(\\(\\d{3}\\)|\\d{3})\\s?\\d{3}(-|)?\\d{4}");
鍙浠ョ‘瀹氱殑鏄锛屼綘鍙浠ヨ嚜宸辫瘯鐫杩涗竴姝ユ敼杩涗笂闈㈢殑浠g爜銆
鐜板湪鐪嬬湅绗浜屼釜渚嬪瓙锛屽畠鏄浠嶧riedl鐨勪腑鏀圭紪杩囨潵鐨勩傚叾鍔熻兘鏄鐢ㄦ潵妫鏌ユ枃鏈鏂囦欢涓鏄鍚︽湁閲嶅嶇殑鍗曡瘝锛岃繖鍦ㄥ嵃鍒锋帓鐗堜腑浼氱粡甯搁亣鍒帮紝鍚屾牱涔熸槸涓璇娉曟鏌ュ櫒鐨勯棶棰樸
鍖归厤鍗曡瘝锛屽儚鍏朵粬鐨勪竴鏍凤紝涔熷彲浠ラ氳繃濂藉嚑绉嶇殑姝e垯琛ㄨ揪寮忔潵瀹屾垚銆傚彲鑳芥渶鐩存帴鐨勬槸\b\w+\b锛屽叾浼樼偣鍦ㄤ簬鍙闇鐢ㄥ皯閲忕殑regex鍏冨瓧绗︺傚叾涓\w鍏冨瓧绗︾敤鏉ュ尮閰嶄粠瀛楁瘝a鍒皍鐨勪换浣曞瓧绗︺+鍏冨瓧绗﹁〃绀哄尮閰嶅尮閰嶄竴娆℃垨澶氭″瓧绗︼紝\b鍏冨瓧绗︽槸鐢ㄦ潵璇存槑鍖归厤鍗曡瘝鐨勮竟鐣岋紝瀹冨彲浠ユ槸绌烘牸鎴栦换浣曚竴绉嶄笉鍚岀殑鏍囩偣绗﹀彿(鍖呮嫭閫楀彿锛屽彞鍙风瓑)銆
鐜板湪锛屾垜浠鎬庢牱鏉ユ鏌ヤ竴涓缁欏畾鐨勫崟璇嶆槸鍚﹁閲嶅嶄簡涓夋?涓哄畬鎴愯繖涓浠诲姟锛岄渶鍏呭垎鍒╃敤姝e垯琛ㄨ揪寮忎腑鐨勬墍鐔熺煡鐨勫悜鍚庢壂鎻忋傚傚墠闈㈡彁鍒扮殑锛屽渾鎷鍙峰湪姝e垯琛ㄨ揪寮忎腑鏈夊嚑绉嶄笉鍚岀殑鐢ㄦ硶锛屼竴涓灏辨槸鑳芥彁渚涚粍鍚堢被鍨嬶紝缁勫悎绫诲瀷鐢ㄦ潵淇濆瓨鎵鍖归厤鐨勭粨鏋滄垨閮ㄥ垎鍖归厤鐨勭粨鏋(浠ヤ究鍚庨潰鑳界敤鍒)锛屽嵆浣块亣鍒版湁鐩稿悓鐨勬ā寮忋傚湪鍚屾牱鐨勬e垯琛ㄨ揪涓锛屽彲鑳(涔熼氬父鏈熸湜)涓嶆㈡湁涓涓缁勫悎绫诲瀷銆傚湪绗琻涓缁勫悎绫诲瀷涓鍖归厤缁撴灉鍙浠ラ氳繃鍚戝悗鎵鎻忔潵鑾峰彇鍒般傚悜鍚庢壂鎻忎娇寰楁悳绱㈤噸澶嶇殑鍗曡瘝闈炲父绠鍗:\b(\w+)\s+\1\b銆
鍦嗘嫭鍙峰舰鎴愪簡涓涓缁勫悎绫诲瀷锛屽湪杩欎釜姝e垯琛ㄧず涓瀹冩槸绗涓缁勫悎绫诲瀷(涔熸槸浠呮湁鐨勪竴涓)銆傚悜鍚庢壂鎻\1锛屾寚鐨勬槸浠讳綍琚\w+鎵鍖归厤鐨勫崟璇嶃傛垜浠鐨勬e垯琛ㄨ揪寮忓洜姝よ兘鍖归厤杩欐牱鐨勫崟璇嶏紝瀹冩湁涓涓鎴栧氫釜绌烘牸绗︼紝鍚庨潰杩樿窡鏈変竴涓涓庢ょ浉鍚岀殑鍗曡瘝銆傛敞鎰忕殑鏄锛屽熬閮ㄧ殑瀹氫綅绫诲瀷(\b)蹇呬笉鍙灏戯紝瀹冨彲浠ラ槻姝㈠彂鐢熼敊璇銆傚傛灉鎴戜滑鎯冲尮閰"Paris in the the spring"锛岃屼笉鏄鍖归厤"Java's regex package is the theme of this article"銆傛牴鎹甹ava鐜板湪鐨勬牸寮忥紝鍒欎笂闈㈢殑姝e垯琛ㄨ揪寮忓氨鏄:Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b");
鏈鍚庤繘涓姝ョ殑淇鏀规槸璁╂垜浠鐨勫尮閰嶅櫒瀵瑰ぇ灏忓啓鏁忔劅銆傛瘮濡傦紝涓嬮潰鐨勬儏鍐:"The the theme of this article is the Java's regex package."锛岃繖涓鐐瑰湪regex涓鑳介潪甯哥畝鍗曞湴瀹炵幇锛屽嵆閫氳繃浣跨敤鍦≒attern绫讳腑棰勫畾涔夌殑闈欐佹爣蹇桟ASE_INSENSITIVE :
Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b",
Pattern.CASE_INSENSITIVE);
鏈夊叧姝e垯琛ㄨ揪寮忕殑璇濋樻槸闈炲父涓板瘜锛岃屼笖澶嶆潅鐨勶紝鐢↗ava鏉ュ疄鐜颁篃闈炲父骞挎硾锛屽垯闇瑕佸箁egex鍖呰繘琛岀殑褰诲簳鐮旂┒锛屾垜浠鍦ㄨ繖閲屾墍璁茬殑鍙鏄鍐板北涓瑙掋傚嵆浣夸綘瀵规e垯琛ㄨ揪寮忔瘮杈冮檶鐢燂紝浣跨敤regex鍖呭悗浼氬緢蹇鍙戠幇瀹冨己澶у姛鑳藉拰鍙浼哥缉鎬с傚傛灉浣犳槸涓鏉ヨ嚜Perl鎴栧叾浠栬瑷鐜嬪浗鐨勮佺粌鐨勬e垯琛ㄨ揪寮忕殑榛戝锛屼娇鐢ㄨ繃regex鍖呭悗锛屼綘灏嗕細瀹夊績鍦版姇鍏ュ埌java鐨勪笘鐣岋紝鑰屾斁寮冨叾浠栫殑宸ュ叿锛屽苟鎶妀ava鐨剅egex鍖呯湅鎴愭槸鎵嬭竟蹇呭囩殑鍒╁櫒銆
B. C语言怎么用正则表达式
借用c的正则表达式库,需要引入头文件<regex.h>。支持POSIX.2正则表达式标准。简单用法如:
regex_t reg; //先声明一个正则表达式体。
regcomp(®, "[a-zA-Z]*", 0); //从字符串来编译这个表达式。
regmatch_t match[2]; //用来保存匹配结果。
regexec(®, "abcedfg", 2, match, 0); //匹配字符串。
此外,c++中也有自己的正则表达式库,比如boost::regex。需要先安装boost库才能使用。