Профил
Loading...
+ Нов въпрос
Reath avatar Reath 188 Точки

[Exam Problems] PHP Basics - Sample Exam - Problem {02} - Email Censorship

Здравейте колеги!

Опитвам се да реша горепосочената задача, но успявам да я докарам само до 90/100. Гърми ми 7ми тест, който съм закоментирал за debugging цели. Проблема е, че при този тест трябва да филтрирам мейли завършващи на .k, но има мейл, който завършва на '.kk'. Алгоритъма ми не смята, че този имейл не трябва да се филтрира защото очаква само '.k', не '.kk'. Някой ще може ли да бутне едно рамо в регулярния израз, че не са ми от най-силните. 


Ето го КОДА, за да дебъгвате просто закоментирайте 2,3,4 ред и разкоментирайте 6,7.

Благодаря на всеки отзовал се!

Тагове:
1
PHP Web Development Basics 24/08/2014 10:02:00
kiko144 avatar kiko144 SoftUni Team 793 Точки

Ами регулярният израз ти хваща реално .kk.. Даже можеш да имаш неограничен брой значи след последната точка. Мисля, че не е от това проблемът! Иначе можеш да се убедиш в това което ти говоря, като си сложиш регекса в този сайт и да видиш какво ти хваща . http://www.regexr.com/

2
Reath avatar Reath 188 Точки

Реално на мен алгоритъма ми хваща мейла без последното k накрая. Хваща първото k и спира, а реално трябва да търси дали последното е k.

0
22/08/2014 01:48:25
ZvetanIG avatar ZvetanIG 925 Точки

Сложи си в края на шаблона \b.  Това означава край на дума.

Например *.k\b   вече става различно от *.к

3
22/08/2014 15:00:02
Reath avatar Reath 188 Точки

Евала колега!! След като добавих \b стана 100/100. Благодаря много!

0
Masovski avatar Masovski 211 Точки

Ето моят код, надявам се да е полезен на някой. Аз на JavaScript изпита се представих по-зле, именно заради регулярните изрази и сега искам да ги науча възможно най-добре.

Така че ако имате критики или съвети, като цяло, моля отправете ги :)

1
23/08/2014 22:37:24
atanasovam avatar atanasovam 39 Точки

И аз я мъчих и ми гърми на 7, 9 и 10ти и нямам идея защо.. Може ли малко помощ?

Това ми е решението Git

0
verito898 avatar verito898 SoftUni Team 290 Точки

Така и така за регулярни изрази става на  въпрос , колеги някой може ли да ми каже по какъв начин се хваща всичко без  id="header" 

 input  : <div id="header" style="color:blue">

 output :  <div  style="color:blue">

input : <div align="left" id="header" style="color:blue">  

output: <div align="left"  style="color:blue">

0
Reath avatar Reath 188 Точки

Да се опиташ да match-ваш всичко без дадено нещо, че да можеш да го "изтръгнеш" в output string-а е безсмислено. По-скоро аз лично бих използвал replace, че да заменя id="header" с празен низ.

1
atanasovam avatar atanasovam 39 Точки

/(.+?)\s*id\=\"header\"(\s*.+)/

Обаче тва хваща 2 групи и после ще трябва да си ги залепиш в 1 стринг.

Друг вариянт без regex ~

<?php
$string = '<div align="left" id="header" style="color:blue">';
$string = str_replace(' id="header"', '', $string);
echo $string;
$string2 = '<div id="header" style="color:blue">';
$string2 = str_replace(' id="header"', '', $string2);
echo $string2;
?>

1
verito898 avatar verito898 SoftUni Team 290 Точки

Знам за replace и как би станало с 2  групи , но исках да разбера дали и как може да стане и с една . Благодаря все пак :) )

0
19/12/2014 15:31:09