دوست عزیز این یه تابع هست که این کار رو انجام میده ، من نمیدونم شما چطور به دیتابیس ربط دادین اینو !!!!!!!!!!!!!!!!!!!احتمالا اونوقت باید آقای رئوفی بشینن چند میلیون کلمه رو تعریف کنند و چند گیگابایت هم دیتابیس رو براش اختصاص بدن![]()
این که شما گفتید درسته ، ولی برای تعداد محدودی کلمه . . .
متن زیر رو ببینید
Khobiiiiiiii
Naaaaaa
یک کد Regular Expression
که اگر از هر حرفی بیشتر از 3 بار تکرار شد .
مقدار false برگردونه ؟!!؟؟!!
ساده فقط به نظر می رسه![]()
if(preg_match("(i{3,})", "Khobiiiiiiii"))
echo true;
else
echo false;
if(preg_match("(a{3,})", "Naaaaaa"))
echo true;
else
echo false;
رشته به آرایه چه ربطی داره؟!؟ نفهمیدم؟!foranyone گفت:این رو به صورت آرایه تبدیل میکنم یا بهتر بگم رشته
الان طول رشته رو اندازه میگیرم
PHP:if(preg_match("(i{3,})", "Khobiiiiiiii")) echo true; else echo false;
PHP:if(preg_match("(a{3,})", "Naaaaaa")) echo true; else echo false;
موفق
<script language="JavaScript" type="text/javascript">
function reg(){
var reg_str=/a{3,}|b{3,}|c{3,}|d{3,}|e{3,}|f{3,}|g{3,}|h{3,}|i{3,}|j{3,}|k{3,}|l{3,}|m{3,}|n{3,}|o{3,}|p{3,}|q{3,}|r{3,}|s{3,}|t{3,}|v{3,}|u{3,}|w{3,}|x{3,}|y{3,}|z{3,}/;
alert(reg_str.test("sallaaam"));
}
reg();
</script>
چرا شایعه درست میکنی؟!!سلام
همانطور که می دونید این مشکل منم هست اینجا مطرح کردمش !
این کدی که دنی داد رو تست نکردم ، ولی به نظر منطقی نمی رسه که هر 28 حرف انگلیسی رو چک کنیم !
تنها کسی که فکر می کنم بتونه کمک کنه امیر ( Shakkey.Com ) هست ، نشون داده که Regular Expression رو خوب بلده !
منظریم ...
$patt = "a{3,}|b{3,}|c{3,}|d{3,}|e{3,}|f{3,}|g{3,}|h{3,}|i{3,}|j{3,}|k{3,}|l{3,}|m{3,}|n{3,}|o{3,}|p{3,}|q{3,}|r{3,}|s{3,}|t{3,}|v{3,}|u{3,}|w{3,}|x{3,}|y{3,}|z{3,}";
if(eregi($patt, "sallammmm")) echo "yes";
else echo "no";
/[a-z]{3,}/i
/(\w){3,}/
/([اآبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]|[a-z]){3,}/i
سلام.
روش جناب dannydolph بدرستی کار می کنه، ولی انگار داریم لقمه رو دور سرمون می چرخونیم!
با یه روش خیلی ساده هم می شه ابنکار رو کرد! این پترن رو ببینید، دقیقا همون کاری رو می کنه که شما می خواید:
اگر می خواید تمامی کاراکترها در نظر گرفته بشن به اینصورت تغییر بدید:کد:/[a-z]{3,}/i
برای حروف فارسی:کد:/(\w){3,}/
--------------------کد:/([اآبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]|[a-z]){3,}/i
ولی یه سوال، حالا اگر بخوایم کاراکترهایی که بیش از 3 بار تکرار شده رو replace و بجای اونها همون کاراکترها رو یک بار نمایش بدیم، چه راهی پیشنهاد می کنید؟ مثال:
Khhhhhobiiii
Khobi
این کد درست کار نمیکنه .
با عبارتی مثل
abs
هم مقدار true رو بر می گردونه
ببخشین یه سوال از رو حواس پرتی پرسیدم بهش پی بردم ادیت کردم یه سوال دیگه پیش اومدچرا شایعه درست میکنی؟!!
روش dannydolph در صفحه قبل درست بود.
اینم واسه php :
PHP:$patt = "a{3,}|b{3,}|c{3,}|d{3,}|e{3,}|f{3,}|g{3,}|h{3,}|i{3,}|j{3,}|k{3,}|l{3,}|m{3,}|n{3,}|o{3,}|p{3,}|q{3,}|r{3,}|s{3,}|t{3,}|v{3,}|u{3,}|w{3,}|x{3,}|y{3,}|z{3,}"; if(eregi($patt, "sallammmm")) echo "yes"; else echo "no";
بله می تونید، با اضافه کردن فلگ i.ببخشین یه سوال از رو حواس پرتی پرسیدم بهش پی بردم ادیت کردم یه سوال دیگه پیش اومد
ممکنه تو رشته Abcaa ای یک حروفش بزرگ باشه نمیشه گفت حروف بزرگ و کوچیک شامل باشه ؟
$patt = "#a{3,}|b{3,}|c{3,}|d{3,}|e{3,}|f{3,}|g{3,}|h{3,}|i{3,}|j{3,}|k{3,}|l{3,}|m{3,}|n{3,}|o{3,}|p{3,}|q{3,}|r{3,}|s{3,}|t{3,}|v{3,}|u{3,}|w{3,}|x{3,}|y{3,}|z{3,}#i";
خروجی noبله می تونید، با اضافه کردن فلگ i.
الگو رو بصورت زیر تغییر بدید:
PHP:$patt = "#a{3,}|b{3,}|c{3,}|d{3,}|e{3,}|f{3,}|g{3,}|h{3,}|i{3,}|j{3,}|k{3,}|l{3,}|m{3,}|n{3,}|o{3,}|p{3,}|q{3,}|r{3,}|s{3,}|t{3,}|v{3,}|u{3,}|w{3,}|x{3,}|y{3,}|z{3,}#i";