PDA

View Full Version : سوال: تعریف الگو نوشتاری



behnam.m
سه شنبه 08 آذر 1390, 08:03 صبح
سلام
چطور می تونم الگو تعریف کنم سپس آن را در jtextfield استفاده کنم مثلا فقط عدد یا مثل پلاک ماشین ...
اگه اشتباه نکنم باید از کلاس Pattern و Matcher استفاده کرد .

لطفا کمکم کنید .....

hosein.zare
سه شنبه 08 آذر 1390, 11:34 صبح
بله برای چک کردن یک الگو میتونی اون را با Matcher چک کنی فقط باید Regular Expression مناسب را بنویسی ...
مثلا چک کردن یک رشته ای که فقط از عدد استفاده کند این Regular Expression مناسبه : ^[-+]?[0-9]*\.?[0-9]+$
http://www.zparacha.com/validate-email-ssn-phone-number-using-java-regular-expression/

Pattern pattern = Pattern.compile("^[-+]?[0-9]*\\.?[0-9]+$");
Matcher matcher = pattern.matcher("2124124s");
boolean found = matcher.find();
if(!found)
System.err.println("JUST ENTER NUMBERS");

behnam.m
جمعه 11 آذر 1390, 18:19 عصر
متشکرم از کمکتون
میشه یه خورده در مورد خط اول کدتون توضیح بدبد

hosein.zare
جمعه 11 آذر 1390, 23:02 عصر
خط اول در واقع یک الگو میسازد . الگویی که توسط Regular Expression تعریف می شود. برای یادگیری Regular Expression باید از Api های جاوا ( کلاس Pattern) راهنمایی بگیری.
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
نمونه ی ابتدایی تر ^[-+]?[0-9]*\.?[0-9]+$ میشه [0-9] و به معنیه اینه که فقط کاراکترهای بین ۰ تا ۹ جایز می باشد(عدد)

خط دوم 2124124s درواقع مقدار متغیری است که می خواهی چک کنی..

spiderman200700
شنبه 12 آذر 1390, 15:53 عصر
جناب hosein.zare ، میشه در مورد این علائم بیشتر توضیح بدید:
"^[-+]?[0-9]*\\.?[0-9]+$"

[-+]?[0-9] یعنی چی؟
*\\.?[0-9] یعنی چی؟
و +$ یعنی چی؟
در کل تفسیر خطوط بالا چی میشه؟
ممنون از شما.

hosein.zare
شنبه 12 آذر 1390, 22:53 عصر
بله حتما .

^
این عبارت باید اول خط انجام بگیرد
[-+]
یا علامت منفی یا مثبت بود
؟
علامت منفی یا مثبت را در اول خط فقط یک بار چک کن
[0-9]
هر عددی از بازه ۰ تا ۹
[0-9]*
هر عددی از بازه ۰ تا ۹ که صفر تا چند بار تکرار شده باشد
.
یک نقطه داشته باشد برای اعداد اعشاری
\.
منظورم خود نقطه است نه کاراکتر خاص
[0-9]*\.?
بازه ۰ تا ۹ به علاوه ی یک نقطه فقط یک بار اتفاق بیفتد
[0-9]+
هر عددی از بازه ۰ تا ۹ که یک تا چند بار تکرار شده باشد
[0-9]+$
اعدادی در بازه ی ۰ تا ۹ باید وجود داشته باشد

spiderman200700
یک شنبه 13 آذر 1390, 02:08 صبح
ممنون دوست عزیز .
این پست واقعا برای من مفید بود.
لطف کردید.