PDA

View Full Version : مشکل در جایگزینی رشته ها (Regular Expression)



sweb
سه شنبه 11 دی 1386, 14:14 عصر
درود

کار با Regular Expression خیلی مفید و پر از کاربرد هستش، من از این سایت (http://www.regular-expressions.info/) برای یادگیریش استفاده کردم ولی خب به مشکل خوردم من میخوام این عبارت رو :


This IS my @ # 53.01 example ...

به این عبارت :


thisismy5301example

تبدیل کنم. کدیم که نوشتم واسش اینه :


<?php
if ($_POST["s"]) {
$pat = "[^a-zA-Z0-9]";
$rep = "";
$out = ereg_replace($pat, $rep, $_POST["inp"]);
echo $out;
}
?><hr />
<form action="" method="post" enctype="multipart/form-data">
<input name="inp" type="text" value="<?php echo $out; ?>" style="width: 95%; height: 64px;" />
<br />
<input name="s" type="submit" />
</form>

ولی خب هیچ تغییری ایجاد نمیشه !!! :لبخند:

مشکل چیه؟

musiox
سه شنبه 11 دی 1386, 16:26 عصر
منظوزت اینه که هیچی چاپ نمی شه یا اینکه رشته تغییر نمی کنه؟
من قالبتو امتحان کردم , جواب داد. یعنی همون خروجی رو که می خوای میده .

sweb
دوشنبه 17 دی 1386, 22:58 عصر
منظوزت اینه که هیچی چاپ نمی شه یا اینکه رشته تغییر نمی کنه؟
من قالبتو امتحان کردم , جواب داد. یعنی همون خروجی رو که می خوای میده .

دِ آره چرا ؟

فقط یک مشکل دیگه واسه اینکه حروف بزرگ رو به کوچیک تبدیل کنم چی باید به این پترن اضافه کنم؟

musiox
سه شنبه 18 دی 1386, 15:38 عصر
فکر نکنم با تغییر پترن بشه . چون اون فقط یه الگویه .

string strtolower ( string str )

sweb
پنج شنبه 20 دی 1386, 21:26 عصر
برای تبدیل :

This IS my @ # 53.01 example ... و مقداری حروف طبق استاندارد Unicode
به

This IS my 5301 example و مقداری حروف طبق استاندارد Unicode

من از پترن

[^a-zA-Z0-9\s\p{L}]

استفاده کردم ولی جواب نگرفتم! در ضمن برای preg_replace که البته به گفته خود منوال سریعتر از ereg_replace هستش از قوانین عمومی Regular Expression که برای تمامی زبان ها استفاده می شه بصورتی خاص استفاده میشه که خب تو منوال PHP هم رفرنسیرو ارائه نداده من کجا می تونم یک رفرنس کامل ازش گیر بیارم به همراه مثال!

musiox
یک شنبه 23 دی 1386, 17:59 عصر
این هست (http://www.oreilly.com/catalog/regexppr/). بخش php رو می تونی همینطوری دانلود کنی . من کلشو دارم اگه خواستی بگو آپلودش کنم .