LINUX.ORG.RU

Проблема с регекспами


0

0

Такая проблема: как в перловом регекспе (питоновский модуль re) написать выражение, удовлетворяющее строке, состоящей только из букв и пробелов? Не могу найти решения...

★★★★★

Re: Проблема с регекспами

[ \w]+

wfrr ★★☆ ()

Re: Проблема с регекспами

'/[a-zа-я ]+/i'

\w буквы и символы подчёркивания включает. \s пробелы, переводы строки и табуляцию.

Wizard_ ★★★★★ ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

в перл-совместимых регексах нет символа, обозначающего буквы "любого алфавита". "Буквы" и пробелы(только пробелы?) латиницы:
(?i)[a-z ]+
Если надо другие алфавиты, соответственно пихаешь в регекс диапазоны
(?i)[a-zА-Яа-я ]+

guest-3484-2009 ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

Тыб описывал задачу сразу и четко, а то щас еще окажется что режексп должен работать только по субботам и выдавать исключение при слове "сало".

wfrr ★★☆ ()

Re: Проблема с регекспами

use Posix;

/[ [:alpha:]]/;

не?

tzukko ()
Ответ на: Re: Проблема с регекспами от wfrr

Re: Проблема с регекспами

а разве буквы не кириллицы и не латиницы не являются буквами? какие тут претензии к формулировке могут быть?

Binary ★★★★★ ()
Ответ на: Re: Проблема с регекспами от guest-3484-2009

Re: Проблема с регекспами

зато \w прекрасно обозначает "буквы любого алфавита, цифры, символ подчёркивания". с оговоркой, что есть флаг UNICODE, конечно. А Вы серьёзно предлагаете все диапазоны всех алфавитов запихать в регексп?

Binary ★★★★★ ()
Ответ на: Re: Проблема с регекспами от wfrr

Re: Проблема с регекспами

действительно там работает, а вот в python нет :(

>>> print re.match(r'(?u)^[\w&&\D]$',u'1') <_sre.SRE_Match object at 0x7f335d83d098>

видать им не под силу

Binary ★★★★★ ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

А в питоне может синтаксис другой, найдите мануал хотябы, для явы все просто и документированно

wfrr ★★☆ ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

Эта а ты уверен что не работает? У них пример на вывод тоже самое выдают.

wfrr ★★☆ ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

Блин питон оказывается даже нормальных режекспов не умеет 8(

Вот способ через жопу

>>> re.match(r'^(\w(?!\d+))+$','sadss').group()
'sadss'
>>> re.match(r'^(\w(?!\d+))+$','sad3ss').group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

wfrr ★★☆ ()
Ответ на: Re: Проблема с регекспами от true_admin

Re: Проблема с регекспами

Да хотябы таже жаба. Или например в пыхе тиснули либы с перла, там уж нормальнее некуда, правда обертка (пых) дерьмо еще то.

wfrr ★★☆ ()
Ответ на: Re: Проблема с регекспами от true_admin

Re: Проблема с регекспами

>\w матчит цифры и в перле.

\w цЫфры должен матчить везде, однако во вменяемых реализациях есть способы сделать исключения.

>в пыхе libpcre который к перлу отношения не имеет.


Ключевая фраза "Perl Compatible Regular Expressions", то бишь севместимые, про то что тиснули я неверно выразился, скорее тиснули синаксис ("с некоторыми исключениями"), а не стали делать убогую пародию как в питоне.

Однако сделать исключение мабуть и в перле нельзя, зато можно юзать [:alpha:]

wfrr ★★☆ ()
Ответ на: Re: Проблема с регекспами от wfrr

Re: Проблема с регекспами

Т.е. если в питоне появится поддержка [:alpha:](скажем, как \a) то у питона будут Ъ-регекспы?

true_admin ★★★★★ ()
Ответ на: Re: Проблема с регекспами от true_admin

Re: Проблема с регекспами

Только после того как логика программ питона перестанет зависеть от пробелов.

wfrr ★★☆ ()

Re: Проблема с регекспами

Вот такой шаблон попробуйте: (?u)^(?:[^\W\d]|\ )+$

А в Перле всё проще: /^[\p{Letter} ]+$/

Hjorn ()
Ответ на: Re: Проблема с регекспами от Binary

Re: Проблема с регекспами

Да никакой, просто мне питон ненравится, причем не столько в силу синтаксиса, сколько в силу его чуждой мне философии построение api и привычки постоянно чтото ломать и строить новое. Тут еще эти оригинальные регулярки.

wfrr ★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.