Вход | Регистрация

Втора задача

  • Въпросът ми не е директно свързан с домашното, но тъй като възникна докато го писах, реших направо да го публикувам в тази тема.

    Та, може ли в регулярен израз да се вкарат променливи и как?

    26.03.2010
  • Каква по-точно е целта?

    • Част от регулярния израз да се променя по време на изпълнение (това не може да стане).
    • Да се достъпва част от съвпадението по име.
    • В самия низ, описващ регулярния израз, да има повтаряща се част.
    26.03.2010 (променeно 26.03.2010)
  • Малко off topic но може ли когато публикувате задача това да се отразява и на главната страница като новина.

    26.03.2010
  • Може.

    26.03.2010
  • Искам да протестирам срещу изискването за намиране на линкове и мейли. Това не е задача за простосмъртни. Или го кажа по друг начин: Този линк http://en.wikipedia.org/wiki/, например, валиден ли е? А този (http://en.wikipedia.org/wiki/)? и разбира се, къде точно започва и свършва линка, при положение, че очевидно има напълно валидни линкове, които завършват на препинателни знаци? И да не забравим моя любимец http://to. (точката е част от линка).

    А как ви се вижда това "!@#$%^&*()_+\\\ \ "@[55.55.55.55] щото според мен е валиден мейл...

    Просто трябва или много, ама много добре да дефинирате какво е линк и мейл и какво се прави в горепосочените случаи, или направо да я зарежете тая работа.

    26.03.2010
  • Не забравяй и IPv6 адресите. Неща от този род са валидни:

    http://[1:2:3:4:5]

    http://[:::1234:abcd:::]

    Задачата може и да не е за простосмъртни, но на простосмъртните им се налага да я решават адски често. И както можеш да се убедиш - простосмъртните правят грешки. В реалния живот е така.

    Нашия форум е добър пример за това. Той би трябвало да маркира адресите като такива. Но не всичко, което е валиден адрес е маркирано.

    Друг пример е skype. А той даже не е нещо писано в свободното време. Въпреки това ще обърка повечето адреси, които си написал.

    От друга страна - същия този skype работи в достатъчно голяма част от случаите и потребителите му не се оплакват.

    По подобен начин вашите точки ще бъдат закръглени. С достатъчно малък брой грешки пак ще получите пълен брой точки за домашното.

    P.S. Всъщност всичко това не е толкова страшно, защото ние няма да се изхвърляме с тестовете.

    26.03.2010 (променeно 26.03.2010)
  • Предполагам, че няма да е проблем да ползваме като идея нещо таковак за URL-ите:

    http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax

    Надявам се да е полезно :)

    27.03.2010 (променeно 27.03.2010)
  • Относно заглавието какво ще кажем за вход от рода на:

    ==Баба ==, == Баба== или ==Баба==(тоя последният пример не е много за тука но все пак за пълнота :) )

    хммм сетих се и за друг пример - === Баба== ===

    27.03.2010 (променeно 27.03.2010)
  • @Владимир: Що се отнася до първите ти три примера, аз бих ги интерпретирал като h2. Последното бих интерпретирал като "Баба ==" в h3.

    27.03.2010
  • Искам да попитам за частта със специалния текст: Името на класа винаги е с малки букви от англискайта азбука. - ще рече ли че ако имаме стринг от вида: Казаха ми, че [weak_1]съм силен[/weak_1] и, че гълъбите не ядат сникърси.

    А после не бяха прави.

    ще се преобразува в: <p>Казаха ми, че [weak_1]съм силен[/weak_1] и, че гълъбите не ядат сникърси.</p>

    <p>А после не бяха прави.</p>

    И примерно [Weak] [/Weak] и [wea k] [/wea k] също няма да се преобразуват?

    28.03.2010
  • @Атанас няма.

    28.03.2010 (променeно 28.03.2010)
  • Ставаше дума част от регулярния израз да се променя. Ноо... явно не.

    Трябва ли класовете да могат да се влагат?

    30.03.2010
  • @Елена да, но винаги ще са правилно структурирани и няма да се разпростират до повече от един параграф

    30.03.2010
  • Въпрос за коментарите: това, че се игнорират какво означава: не ги обработваме по никакъв начин или просто ги няма в изхода?

    Вчера мисля, че казахте нещо за тях, но аз не чух... съжалявам ако повтарям въпроси.

    30.03.2010
  • Има ли начин, когато използваме групи в шаблона да кажем, че няма цял стринг, а не само един символ. И какъв е начина ако има такъв. Благодаря предварително :)

    30.03.2010
  • @Йолина

    (?!e)
    Matches if the expression e does not match at this assertion and does not advance over it—called negative lookahead

    (?<! e)
    Matches if the expression e does not match immediately before this assertion—called negative lookbehind

    (?!imsocool) например

    30.03.2010 (променeно 30.03.2010)
  • И аз имам въпрос за коментарите. Предполагам закоментираните редове се изпускат напълно. А ако имаме текст непосредствено преди и след коментара, текста слива ли се в един параграф или стават два параграфа?

    30.03.2010 (променeно 30.03.2010)
  • Всъщност горното важи и за списъци. Ако имаш 2 отделни списъка разделени с коментар то премахването му може да доведе до сливането на тези два в един.

    30.03.2010
  • @Велина, @Виктор, коментарите не правят нов параграф. Все едно редът с тях го е нямало.

    30.03.2010 (променeно 30.03.2010)
  • В тестовете ще има ли URL-та започващи с нещо различно от http? Например ftp :)

    30.03.2010
  • На лекции казахте(по-точно Ники каза :) ), че може да си добавяме нови редове в текста. Това значи ли, че може да си добавяме където и колкото си поискаме нови редове, без да се променя разбира се логиката на текста?

    30.03.2010
  • @Владимир

    погледни примерния тест и по-точно:

    self.assertEqual(*(re.sub(r'\s+', '', s) for s in (expected, kiss(source))))

    тоест можеш кадето и каквото искаш празно място да добавяш

    @Иван

    Според мен да започва с http://, https://, ftp://, www или ftp е достатъчно, защото в общия случай нещата опират до RFC 3986, а ако искаха това щяха да го упоменат изрично.

    30.03.2010 (променeно 30.03.2010)
  • Възможно ли е да има < br / > тагове извън параграфи ? Нещо от рода на:

    <p> ... </p> < br / > <p> ... </p>

    или:

    <h1>...</h1> < br / > <ul> <li>...</li> . . . <li>...</li> </ul>

    или (в началото на текста):

    < br / > <h1>...</h1>

    Освен това в условието се казва, че ред, който започва и завършва с еднакъв брой '=', се счита за валидно заглавие. Това означава ли, че ако има табулации например преди първото и/или след последното '=' няма да се счита за валидно заглавие ?

    30.03.2010 (променeно 31.03.2010)
  • @Мартин

    Наистина задачата е недодефинирана за тези 3 случая, но си мисля че имат предвид <br / > да е само вътре в параграфи. Нека който е писал задачата да каже.

    Интересно също дали това е коректно, т.е трябва ли да има втория <br / >:

    <p>hhhhh<br / >

    <s pan class="iamsocool">Примигвам, примигвам!

    Ослепявам, ослепявам!</s pan><br / >

    xyz</p>

    ""Освен това в условието се казва, че ред, който започва и завършва с еднакъв брой '=', се счита за валидно заглавие. Това означава ли, че ако има табулации например преди първото и/или след последното '=' няма да се счита за валидно заглавие ?""

    Според условието е невалидно.

    31.03.2010 (променeно 31.03.2010)
  • @Иван, ще започва с http://

    @Мартин, за новите редове между параграфите в условието си пише ясно.

    @Мартин, в началото няма да има празни редове. А и условието ти подсказва да ги махнеш, защото казва изрично:

    Всяка последователност от повече от един нов ред указва нов параграф.

    За да имаш празен ред ти трябват два знака за нов ред. А по-долу в условието се казва, че празните параграфи трябва да се пропускат.

    @Мартин, ако ред започва с табулация, то той не започва с знак за равно. Ако пък завършва на табулация, то той не завършва с знак за равно.

    @Антон, не можем да кажем дали има второто <br />, ако не си дал изходния текст.

    31.03.2010