Tuesday, July 31, 2007

Mobile Device Troubleshooting 2
Unable to Debug/Traces in .net IDE with Mobile Device 5.0

တခါတေလမွာ သံုးေနတဲ့ mobile device နဲ ့ .net IDE တို ့ဟာ Breakpoint ေထာက္ ၿပီး Debugging လုပ္လို ့မရတဲ့အေၿခအေနကို ၾကံဳေတြ ့ရတက္ပါတယ္။ ဒါဟာ mobile developer တစ္ေယာက္အတြက္ေတာ့ ငရဲ ခန္းပါပဲ။ အရင္ကမွ Debugging လုပ္ရတာ ခက္ရတဲ့ အထဲ လုပ္လို ့မရဘူးဆိုရင္ သြားၿပီပဲ။ ဒီပိုစ္မွာ ၿဖစ္ႏိုင္ေခ်ရိွတဲ့ ၿပသာနာေတြထဲက တစ္ခုကို ေဖာ္ၿပလိုက္ပါတယ္။

ခင္းဗ်ားတို ့ရဲ ့ moblie version ကို ၿပန္စစ္ပါ။ compact framework version ဘယ္ေလာက္ ကို တင္ထားသလဲဆိုတာ ကို ၿပန္စစ္ပါ။ တကယ္လို ့ခင္ဗ်ားတို ့ရဲ ့ mobile device က compact framework version 2 တင္ထားတယ္ဆိုရင္ ခင္ဗ်ားတို ့ရဲ ့ PC ကိုလည္း version အတူတူတင္ဖို ့လို အပ္ပါတယ္။ compact framework 2.0 service pack 1 ကို ၿမင့္ (upgrade) လုပ္ထားတယ္ဆိုရင္လည္း PC ကို လည္းလုပ္ေပးရပါမယ္။ ဒီလို မွ မဟုတ္ရင္ ေတာ့ Visual Studio 2005 က version အေဟာင္းၾကီးကိုပဲသံုးေနၿပီး Debug လုပ္လို ့မရ ၿဖစ္ေနပါလိမ့္မယ္။

mobile device အတိုင္း PC ကို compact framework version အတူတူ ထည့္ ထားလိုက္ ရင္ အားလံုးအဆင္ေၿပပါလိမ့္မယ္။

ဒါကေတာ့ compact framework 2.0 service pack 1 download လင့္ခ ေလးပါ။

Compact Framework 2.0 Service pack 1 Download

အာေကလာ (akela)
july 31, 2007 8:19 pm

Saturday, July 28, 2007

ေရးသူ - သန္ ့ေဇာ္မင္း
ေန ့စြဲ - july 26,2007
--------------------------------

C++ Programming Language (အပိုင္း - ၁)

Programming language
Programming language ဆိုသည္မွာ ကြန္ပ်ဴတာကို ခိုင္းေစေသာ ဘာသာစကား ျဖစ္ပါသည္။ ကြန္ပ်ဴတာကိုခိုင္းေစသည္ ဆိုရာ၀ယ္ monitor ေရွ႕ တြင္ထိုင္ microsoft word, excel စသည့္ application ၁ခုခုကိုဖြင့္ keyboard ကိုတေဖ်ာင္းေဖ်ာင္းရိုက္၍ စာမ်ားေပၚလာေအာင္ ျပဳလုပ္နိုင္ျခင္းကို မဆိုလိုေပ။ ထိုသူမ်ားကို ကြန္ပ်ဴတာအသံုးျပဳသူ (user)မ်ားဟုေခၚေပသည္။ ထိုသူမ်ား အသံုးျပဳနိုင္ေအာင္ application မ်ားေရးသားျခင္း (ျပဳလုပ္ေပးျခင္း) ကိုသာ ဆိုလိုေပသည္။ ထိုသို႔ျပဳလုပ္သူမ်ားကို program ေရးသားသူ (programmer) မ်ားဟု ေခၚေပသည္။

အဂၤလိပ္လူမ်ိဳး တေယာက္နွင့္ ဆက္သြယ္ေျပာဆိုလိုလွ်င္ အဂၤလိပ္စာ၊ အဂၤလိ္ပ္စကား တက္ရန္လိုေပမည္။ ထို႔အတူ ကြန္ပ်ဴတာကို ဆက္သြယ္ခိုင္းေစရန္ ကြန္ပ်ဴတာနားလည္ေသာ ဘာသာစကားကို တက္ေျမာက္ရန္လိုေပသည္။ ဤနည္းအားျဖင့္ programming language မ်ားကို တီတြင္ေရးသားလာၾကသည္။ Assembly, C, Java, VB, .NET စသည္ျဖင့္ programming language မ်ားစြာရွိပါသည္။ အစကနဦး အသံုးျပဳခဲ႔ၾကေသာ language မ်ားမွာ ကြန္ပ်ဴတာကို တိုက္ရိုက္ခိုင္းေစနိုင္ရန္ ေရးသားရေသာေၾကာင့္ ေရးသားသူ လူသားတို႔အတြက္ နားလည္ရန္ခက္ခဲေလ့ရွိသည္။ ထို႔ေၾကာင့္ ေနာက္ပိုင္းတြင္ program ေရးသားသူမ်ားအတြက္ အဆင္ေျပေစရန္ ပိုမိုလြယ္ကူ၊ ပိုမိုေကာင္းမြန္ေသာ language မ်ားကို တီထြင္ဖန္တီး လာၾကသည္။ (ေနာင္တခ်ိန္တြင္ ကြန္ပ်ဴတာကို ပါးစပ္ျဖင့္ အမိန္႔ေပး ခိုင္းေစနိုင္လာေပလိမ့္မည္။)

ဆက္ဖက္ရန္......
C++ Programming အပိုင္း ၁


မွတ္ခ်က္။ ။ ကိုသန္ ့ေဇာ္မင္း ရဲ ့ဘေလာမွာ
july 26, 2007 8:41pm က သူကိုယ္တိုင္ေရးထားတာကို ခြင့္ေတာင္းၿပီး ၿပန္လည္ ေဖၚၿပထား ၿခင္းၿဖစ္ပါတယ္။ ကိုသန္ ့ေဇာ္မင္းကို ေက်းဇူးတင္ပါတယ္။
loiyoes

Thursday, July 26, 2007

Mobile Device Troubleshooting 1
SQL Query Analyzer.


ဒီေန ့အလုပ္လုပ္ရင္းၾကံဳလိုက္ရတဲ့ ၿပသာနာတခုပါ။ ပရိုဂရမ္ အလုပ္လုပ္ ေနတဲ့ mobile device က SQL Query Analyzer ကအလုပ္မလုပ္ေတာ့ဘူး။ နည္းစနစ္ဆိုင္ရာ ဗိသုကာ( Programm Architect) ကို ေမးၾကည့္ေတာ့ တခ်ိဳ ့ dlls ေတြကိုသြင္း ရမယ္လို ့ေၿပာတယ္။ သူေၿပာတဲ့ dlls ေတြက-

၁. sqlce30.dev.ENU.ppc.wce5.armv4i.CAB (*)
၂. sqlce30.ppc.wce5.armv4i.CAB (**)

တို ့ပါဘဲ။ mobile device ထဲမွာက SQL Query Analyzer က ရိွကို မရိွေတာ့တာ။ ဒါနဲ ့ sqlce30.dev.ENU.ppc.wce5.armv4i.CAB ကို သြင္းၾကည့္လိုက္တယ္။ SQL Query Analyzer ကို ၿမင္လာရတယ္။ OK ၿပီဆိုၿပီး Database ဖိုင္ (.sdf) ကို ဖြင့္ၾကည့္တဲ့အခါ အမွား ေတြတက္လာပါတယ္။ အမွားသတိေပးခ်က္( Error Message) ကေတာ့ -

Failed to initialize the provider. Please make sure that SQL Server
Mobile Edition is properly installed

ပါတဲံ။နည္းစနစ္ဆိုင္ရာဗိသုကာ (program Architect) ကလည္း ဘာေၾကာင့္လည္းဆိုတာမသိဘူး။ ဒါနဲ ့ ဆက္လက္ရွာေဖြမိတယ္။ ဒီလို နဲ ့ေတြ ့ပါတယ္။

qlce30.repl.ppc.wce5.armv4i.CAB (***)

ကို သြင္း (install) ပါတဲ့။ ဒီ .CAB ဖိုင္ကို သြင္းၿပီးသြားတဲ့အခါမွာေတာ့ အားလံုး အဆင္ ေၿပသြားပါတယ္။

ဒီဖိုင္ အားလံုးဟာ

C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\wce500\armv4I

ေအာက္မွာ ရိွပါတယ္။

။ ။ Mobile မွာ ဒီ ကဘ္(.CAB)ေတြကို ဘယ္လုိ သြင္းရမွန္းမသိသူေတြအတြက္ပါ။
Mobile မွာ သြင္း(install) ရတာလြယ္ပါတယ္။ သြင္းခ်င္တဲ့ ဖိုင္ေတြကို Mobile ရဲ ့ Explore Root ေအာက္တဲ့တဲ့မွာ သြားထားပါ။ Mobile Explore ကို ဖြင့္ခ်င္တယ္ဆိုရင္ ပံုမွန္ ကြန္ၿပဳတာရဲ ့ Explore ကေနလည္းသြားလို ့ရသလို ၊ Microsoft ActiveSync သံုးရင္းလည္း သူ Icon ကို ၾကြက္ရဲ ့ညာကို ႏွိပ္ ၿပီး Explore ဆိုရင္လည္းရပါတယ္။ ခုနက (.CAB) ဖိုင္ေတြကို Root ေအာက္မွာဘဲ Copy/Paste လုပ္ခ်ပါ။
ၿပီးရင္ Mobile ထဲကေန ၿပီး ခုနက ဖိုင္ေတြကို သြား ၿပီး Run ပါ။ ေအာင္ေအာင္ၿမင္ၿမင္ သြင္း(install) လို ့ရတယ္ ဆိုရင္ Successfully insatlled ဆိုတာေပၚလာပါမယ္။ ။


ေပ်ာ္ရြင္ၿငိမ္းခ်မ္းၾကပါေစ။

အာေကလာ (Akela)
July 26, 2007 2:05 pm

Sunday, July 22, 2007

Regular Expression (စကာလံုးအစုပံုစံ)

စကားလံုးအစုပံုစံ မိတ္ဆက္
(Introduction of Regular Expression)

:. ၁.၁
စကားလံုးအစုပံုစံ (Regular Expression) တစ္ခုဆိုတာ (ကြန္ၿပဴတာေလာက အသံုးအႏွဳန္းအားၿဖင့္္) string အမ်ိဳးအစားမ်ိဳး ၿဖစ္ပါတယ္။ သတ္မွတ္ထားတဲ့ ပံုစံ စည္းမ်ဥ္းစည္းကမ္းမ်ားအတိုင္း စကာလံုး (character) ေတြကို ရွာေဖြဖို ့၊ စကားလံုးအစု (a set of characters)တစ္ခုနဲ ့ အၿခား စကားလံုးအစု တို ့ကို တိုင္ဆိုင္ စစ္ေဆးခ်င္တဲ့ အခါမ်ိဳး၊ အဲဒီလို အခါေေတြမွာ သံုးေလ့ရိွပါတယ္။

တကိုယ္ေရသံုးကြန္ၿပဳတာေတြကို သံုးဖူးတဲ့သူေတြ ဆိုရင္ပဲ ဒီ စကာလံုးအစုပံုစံ (Regular Expression) ကို သံုးဖူးၾကမွာပါ။ စကားလံုးအစုပံုစံကိုသံုးေနတယ္လို ့ သိခ်င္မွေတာ့ သိပါမယ္။ ဥပမာ- ဖိုင္ေတြကို ရွာေဖြခ်င္တဲ့အခါမ်ိဳးေတြမွာေပါ့။ ဖိုင္နာမည္ data နဲ ့ စတဲ့ ဖိုင္အားလံုးကို ရွာခ်င္တယ္ဆိုပါေတာ့။

စက္ထဲမွာ က -
၁. data.doc ၊
၂. data1.doc ၊
၃. data2.doc ၊
၄. dataTXT.txt ၊
၅. dataEXE.exe ၊
၆. dataB.bat

ဆိုၿပီးရိွမယ္လို ့ယူဆၾကမယ္။ ဒါဆို ရွာေဖြတဲအခါ data*.doc ဆိုးၿပီးရိုက္ ထည့္လိုက္။ ၿပီးလို ့ search ဆိုတဲ့ button ေလးကို ႏိွပ္လုိက္ရင္ ခုနက အေပၚဆံုးဖိုင္ ၃ ဖိုင္ကို ကြန္ၿပဳတာ စီမံခန္ ့ခြဲေရးစႏွစ္ (Operating System - OS) က ရွာေပးပါလိမ္မယ္။ တကယ္လို ့ data?.* လို ့ရိုက္ထည့္ခဲ့မယ္ဆိုရင္ေတာ့ ၂ ၊ ၃ နဲ ့ ၆ တိုကို ရွာေပးပါ လိမ့္မယ္။ data*.* ဆိုရင္ေတာ့ ၆ ဖိုင္လံုးေပါ့။

wildcard characters ေတြလို ့ေခၚခဲ့ ၾကတယ္။ ရိုးရိုးရွင္းရွင္းေတြေပါ့။ အခုေၿပာမယ့္ စကားလံုးအစုပံုစံ မွာက ဒီထက္အမ်ားၾကီး က်ယ္ၿပန္ ့ပါတယ္။ အနည္းငယ္လည္း ခတ္မယ္။ wildcard characters ေတြက အေတာ္အသံုးက်ေပ့မယ္လို ့ အကန္ ့့အသတ္ ရိွတယ္။ သူတို ့ေတြဟာ စကားလံုးပံုအစုပံုစံ (Regular Expression) ရဲ ့ သေဘာတရား ကို မိတ္ဆက္ေပးခဲ့ပါတယ္။

:. ၁.၂
စကားလံုးအစုပံုစံရဲ ့ မူလဇစ္ၿမစ္ဟာ သီ၀ရီသေဘာတရားဆိုင္ရာကြန္ၿပဳတာသိပံၸ (theoretical computer science) ရဲ ့ အစိတ္အပိုင္းေတြၿဖစ္ၾကတဲ့ automata theory နဲ ့ formal language theory တို ့ပဲၿဖစ္ၾကပါတယ္။ စကားလံုးအစုပံုစံ ကို formal language theory နဲ ့ ေဖာ္ၿပေရးသားရပါတယ္။ (ေလ့လာလိုသူမ်ား ဆက္ၿပီးေလ့လာၾကပါ။ ဒီေၾကာင္း ေတြက ဒီပိုစ္နဲ ့မဆိုင္ပါ။)

:. ၁.၃
စကားလံုးအစုပံုစံ (Regular Expression) ကိုသံုးၿခင္းအားၿဖင့္

- အခ်က္အလက္ မွန္ကန္ေၾကာင္း စစ္ေဆးၿခင္းမ်ား (Data Validation & Verification)

ဥပမာ - ၀င္ေရာက္လာတဲ့ တယ္လီဖုန္းနံပါတ္ က ကိုယ္လိုခ်င္တဲ့ စံပံုစံ (pattern) ဟုတ္မဟုတ္စစ္ေဆးၿခင္း ၊ လိုခ်င္တဲ့ ပံုစံက ၉၀a-၃၄-၅d-၃ ဆိုပါေတာ့၊ အဲဒီပံုစံမဟုတ္ပဲ ၉၀3၅၅-၅%၇၅၄ ဆိုရင္္ စံပံုစံ (pattern) အားၿဖင့္ မွားတယ္။

- စာမ်ား အစားထိုးၿခင္း (Replace Text)

ဥပမာ - I love you very much. No matter what you are, I love you. ေပါ့။ဒီလို စာေတြ စာရြက္ေပါင္း မ်ားစြာရိွမယ္ဗ်ာ။ ဒါကို (ႏွစ္အနည္းငယ္ၾကာလာတဲ့အခါ) love အစား hate နဲ ့အစားထုိးခ်င္တယ္ ဆိုပါေတာ့။အဲဒီလို အခ်ိန္မွာ သိပ္အသံုးက်တယ္။

- စာအစဥ္အတန္း (String) တစ္ခုထဲကေန ကိုယ္လို ခ်င္တဲ့ အစိတ္အပိုင္း ေလးတစ္ခုကိုပဲ ထုတ္ယူၿခင္း (Extract text)

ဥပမာ - အေပၚက စာထဲကပဲ love ဆိုု တဲ့ စာလံုးကိုပဲ ထုတ္ယူခ်င္တဲ့အခါမ်ိဳး။
စသည္တုိ ့ေတြမွာ အလြန္ အသံုး၀င္ပါတယ္။

စာအစဥ္အတန္း (String) ေတြကို ကိုင္တြယ္တဲ့ေန ရာမွာ နာမည္မၾကီးတဲ့ javascript လို ပရိုဂရမ္ ဘာသာရပ္ေတြမွာ စကားလံုးအစုပံုစံ (Regular Expression) က အသံုးက် ၾကပါတယ္။

ဆတ္ရန္။

ရည္ညြန္း။ ။ MSDN, Wikipedia - the free encyclopedia

အာေကလာ (Akela)

july 21, 2007 2:42 am

မွတ္ခ်က္။ ။ ပိုစ္ေတြကို ကၽြန္ေတာ္ စာလံုးမ်ားကို တက္ႏိုင္သေလာက္ ၿမန္မာမွဳၿပဳထာပါတယ္။ ပညာရွင္မဟုတ္တဲ့ အတြက္ စာလံုးေတြက ေထာက္ေနပါတယ္။ ကၽြန္ေတာ္ကိုယ္တိုင္ ေရးေနရင္းနဲ ့ ခဏခဏရယ္ၿဖစ္ပါတယ္။ ဒါေပ့မယ္ေပါ့ေလ တက္ႏိုင္သမွ်ေတာ့ ၾကိဳးစားၿပီးၿမန္မာ လို ပဲေရးပါမယ္။ အခုအစၿပဳမိရင္ ေနာင္က်ေတာ့ဒီထက္ေကာင္းတဲ့ အဓိပၸါယ္ၿပည့္စံုတဲ့ ၿမန္မာစာလံုးေတြ ထြက္လာႏိုင္တယ္လို ့ေမွ်ာ္လင့္ပါတယ္။



Saturday, July 21, 2007

စကားလံုးအစုပံုစံ ၀ါက်
(Regular Expression Syntax)

:. ၂.၁
စကားလံုးအစုပံုစံ (Regular Expression) ဆိုတာ စာကားလံုးမ်ားကိုသံုးထားတဲ့ ပံုစံ (pattern of Text) ၿဖစ္တဲ့အတြက္ သူ ့မွာ သာမန္ စကားလံုးမ်ား (ordinary characters - a မွ z အထိ) ၊ အထူး စကားလံုးမ်ား (special characters or metacharacters) ေတြပါ၀င္ပါတယ္။

ေအာက္ပါ ဇယားကြက္မွာ အထူး စကားလံုးမ်ား (metacharacters**) နဲ ့ သူတို ရဲ ့ ၿပဳမွဳ ႏိုင္တဲ့စြမ္းရည္ (behavior) တိုကို ေဖာ္ၿပထားပါတယ္။

စကားလံုးမ်ား (Characters)

အဓိပါယ္ဖြင့္ဆိုခ်က္(Description)



\

သူေနာက္က စာလံုးကို special characters ၊ သို ့ literal အၿဖစ္ ၿပဳမွဳေပးပါတယ္။ ဥပမာ -ပံုမွန္ဆိုရင္ ‘n’ က စာလံုး “n” နဲ ့ တိုက္စစ္ (Match) ပါတယ္။ ဒါေပမယ္ ‘\n’ ၿဖစ္သြားရင္ေတာ့ ေနာက္ အသစ္တလိုင္း (newline character) ၿဖစ္သြားပါတယ္။ ‘\\’ က “\” နဲ ့တိုက္ၿပီး ၊ “\(” က “(” နဲ ့တိုက္စစ္ပါတယ္။

^

၀င္လာတဲ့ စာအစဥ္အတန္း (Input string )ရဲ ့ ပထမဆံုး ေနရာ (position at the beginning) ကို တိုက္စစ္္ပါတယ္။

$

၀င္လာတဲ့ စာအစဥ္အတန္း (Input string )ရဲ ့ ေနာက္ဆံုး ေနရာ (position at the end) ကို တိုက္စစ္္ပါတယ္။

*

သူရဲ ့ေရွမွာ ရိွေနတဲ့ စာလံုး(character) သို ့မဟုတ္ စာလံုးအစုငယ္ (subexpression) ေတြကို 0 or more အၾကိမ္အေရအတြက္ တိုက္ပါတယ္။ ဥပမာ - “zo*” က “z” and “zoo” ကို တိုက္ပါတယ္။ * က {0,} နဲ ့ အတူတူပဲ ၿဖစ္ပါတယ္။ သေဘာက o က လံုး၀မပါရင္လည္းၿဖစ္တယ္။ တစ္လံုးထက္ပိုပါရင္လည္း ၿဖစ္တယ္။

+

သူရဲ ့ေရွမွာ ရိွေနတဲ့ စာလံုး(character) သို ့ စာလံုးအစုငယ္ (subexpression) ေတြကို one or more အၾကိမ္အေရအတြက္ တိုက္ပါတယ္။ ဥပမာ - “zo+” က “zo” and “zoo” ကို တိုက္ပါတယ္။ ဒါေပမယ့္ “z” ကို မတိုက္ပါဘူး။ + က {1,} နဲ ့ အတူတူပဲၿဖစ္ပါတယ္။ သေဘာက o က အနည္းဆံုး ၁လံုးပါရတယ္။ တစ္လံုးထက္ပိုပါရင္လည္း ၿဖစ္တယ္။

?

သူရဲ ့ေရွမွာ ရိွေနတဲ့ စာလံုး(character) သို ့ စာလံုးအစုငယ္ (sub expression) ေတြကို 0 or 1 အၾကိမ္အေရအတြက္ တိုက္ပါတယ္။ ဥပမာ - “do(es)?” က “do” and “does” ကို တိုက္ပါတယ္။ ? က {0,1} နဲ ့အတူတူပဲၿဖစ္ပါတယ္။ သေဘာက o က လံုး၀မပါရင္လည္းၿဖစ္တယ္။ တစ္လံုးတည္းပါရင္လည္း ၿဖစ္တယ္။

{n}

ဒီမွာ n က အႏုတ္ကိန္းမဟုတ္ရပါ။ n ၾကိမ္အေရအတြက္ အတိ အက် တိုက္ပါတယ္။ ဥပမာ - ‘o{2,}’ လို ့ဆိုရင္ “Bob” ထဲမွာ ရိွ တဲ့ o နဲ ့မတိုက္ပါဘူး။ ဒါေပမယ့္ “food” ထဲမွာရိွတဲ့ o ႏွစ္လံုးနဲ ့ ေတာ့ တိုက္ပါတယ္။

{n,}

ဒီမွာ n က အႏုတ္ကိန္းမဟုတ္ရပါ။ အနိမ့္ဆံုး n ၾကိမ္ အေရ အတြက္္နဲ ့ တိုက္ပါတယ္။ ဥပမာ - ‘o{2}’ လို ့ဆိုရင္ “Bob” ထဲမွာ ရိွ တဲ့ o နဲ ့မတိုက္ပါဘူး။ ဒါေပမယ့္ “fooooood” မွာရိွတဲ့ o အားလံုးနဲ ့ ေတာ့တိုက္ပါတယ္။ ‘o{1,}’ က အထက္မွာ ေဖၚၿပခဲ့တဲ့ ‘o+’ နဲ ့အတူတူပဲၿဖစ္ပါတယ္။

{n,m}

ဒီမွာ n နဲ ့ m က အႏုတ္ကိန္းမဟုတ္ရပါ။ n က m ထက္ ငယ္ရင္ငယ္ ၊ မငယ္ရင္ ညီရပါမယ္ (n <= m)။ အနိမ့္ဆံုး n ၾကိမ္ ၊ အၿမင့္ဆံုး m ၾကိမ္ အေရအတြက္ နဲ ့့ တိုက္ပါတယ္။ ဥပမာ - ‘o{1,3}' ဟာ “fooooood” မွာရိွတဲ့ ပထမ o သံုးလံုးနဲ ့ တိုက္ပါတယ္။ ‘o{0,1}’ က အထက္မွာ ေဖၚၿပခဲ့တဲ့ ‘o?’ နဲ ့ အတူတူပဲၿဖစ္ပါတယ္။ “o{1,}” က အထက္မွာေဖၚၿပခဲ့တဲ့ ‘o+’ နဲ ့ တူၿပီး ၊ “o{၀,}” ကေတာ့့ ‘o*’ နဲ ့ အတူတူပဲၿဖစ္ပါတယ္။

?

ဒီ ? က (*,+,?,{n},{n,},{n,m}) တို ရဲ ့ ေနာက္မွာ ခ်က္ခ်င္း ရိွေနတယ္ဆိုရင္ အဲဒီပံုစံကို non-greedy pattern လုိ ့ေခၚပါ တယ္။ non-greedy pattern ဆိုတာ တုိက္စစ္တဲ့အခါ နည္းႏိုင္ သမွ်နည္းေအာင္တုိက္စစ္ပါတယ္။ ပံုမွန္ ပံုစံ(pattern) က မ်ား ႏိုင္သမွ်မ်ားေအာင္တုိက္စစ္ပါတယ္။ ဥပမာ - “oooo” ဆို တဲ့ စာအစဥ္ အတန္း (string) မွာ ၊ ‘o+?’ က ‘o’ တစ္လံုးတည္းနဲ ့ တိုက္စစ္ၿပီး ၊ ? မပါ တဲ့ ‘o+’ က ‘o’ အားလံုးနဲ ့တိုက္စစ္ပါတယ္။

.

“\n” (newline character) ကလြဲရင္ ‘.’ (dot) ကေလးဟာ စကာလံုးအားလံုးနဲ ့ တိုက္စစ္ပါတယ္။ “\n” ကိုပါ တိုက္စစ္ခ်င္ တယ္ဆိုရင္ေတာ့ ‘[\s\S]’ ဆိုတဲ့ ပံုစ(pattern) ံကို သံုးႏိုင္ပါတယ္။

x|y

သူက ‘ x ’ ဒါမွမဟုတ္ ‘ y ’ ကိုတိုက္စစ္ပါတယ္။ ဥပမာ- “z|food” ဟာ “z” ဒါမွမဟုတ္ “food” နဲ ့ တိုက္ပါတယ္။ “(z|f)ood” က်ေတာ့ “zood” ဒါမွမဟုတ္ “food” နဲ ့တိုက္ စစ္ပါတယ္။ “|” ဒီစာလံုးေလးက or (တစ္ခုမဟုတ္တစ္ခု) ဆိုတဲ့ အဓိပါယ္ရိွပါတယ္။

[xyz]

သူကေတာ့ စကားလံုးအစုပါပဲ။ ေဒါင့္ကြင္း([]) ထဲမွာ ရိွတဲ့ ဘယ္စကားလံုးနဲ ့ မဆို တိုက္စစ္ပါတယ္။ ဥပမာ- [abc] က

“plain” ထဲက “ a ” နဲ ့တိုက္စစ္ပါတယ္။

[^xyz]

သူကေတာ့ စကားလံုးအစုပါပဲ။ ေဒါင့္ကြင္း([]) ထဲမွာ ရိွတဲ့ စကားလံုးမ်ား နဲ ့မတူတဲ့ အၿခားစကားလံုးမ်ားကို တိုက္စစ္ ပါတယ္။ ဥပမာ- [^abc] က “plain” ထဲက “ p ” ၊ “ l ” ၊ “ i ” ၊ “ n ” တိုက္စစ္ပါတယ္။ ^ က မဟုတ္ (not) ဆိုတဲ့ အဓိပါယ္ရိွ ပါတယ္။

[a-z]

သူကေတာ့ စကားလံုး အတိုင္းအတာ (range of characters) တစ္ခုပါပဲ။ဥပမာ - [a-m] ဟာ a နဲ ့ m ၾကားမွာရိွတဲ့ မည္သည့္ စကားလံုးကို မဆို တိုက္စစ္ပါ တယ္။

[^a-z]

သူကေတာ့ စကားလံုး အတိုင္းအတာ (range of characters) တစ္ခုပါပဲ။ဥပမာ - [^a-m] ဟာ a နဲ ့ m ၾကားမွာရိွတဲ့ စကားလံုးမ်ားမွ လြဲ ၿပီး မည္သည့္စကားလံုးနဲ ့မဆို တိုက္စစ္ပါ တယ္။^ က မဟုတ္ (not) ဆိုတဲ့ အဓိပါယ္ရိွ ပါတယ္။

ဆက္ရန္။

ရည္ညြန္း။ ။ MSDN, Wikipedia - the free encyclopedia, Google

့့့အာေကလာ(Akela)

july 22, 2007 2:42 am

july 26,2007 00:02 am (midinght) (modified)

မွတ္ခ်က္။ ။ ပိုစ္ေတြမွာ ကၽြန္ေတာ္ စာလံုးမ်ားကို တက္ႏိုင္သေလာက္ ၿမန္မာမွဳၿပဳထာပါတယ္။ ပညာရွင္မဟုတ္တဲ့ အတြက္ စာလံုးေတြက ေထာက္ေနပါတယ္။ ကၽြန္ေတာ္ကိုယ္တိုင္ ေရးေနရင္းနဲ ့ ခဏခဏရယ္ၿဖစ္ပါတယ္။ ဒါေပ့မယ္ေပါ့ေလ တက္ႏိုင္သမွ်ေတာ့ ၾကိဳးစားၿပီးၿမန္မာ လို ပဲေရးပါမယ္။ အခုအစၿပဳမိရင္ ေနာင္က်ေတာ့ဒီထက္ေကာင္းတဲ့ အဓိပၸါယ္ၿပည့္စံုတဲ့ ၿမန္မာစာလံုးေတြ ထြက္လာႏိုင္တယ္လို ့ေမွ်ာ္လင့္ပါတယ္။