Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > регулярные выражения


Автор: Rostik Ultra 12.9.2008, 04:26
1. есть строка xPhp is a cool language.

как убрать x - вначале предложения
В ОБЩЕМ СЛУЧАЕ - как убрать лишние буквы (в разном количестве) в начале предложений ? + их может не быть в начале предложений

2. есть два предложения First sentence and 1.000 number.Second sentence 100.New sentence.

как разделить эти предложения пробелом ?
ВОБЩЕМ СЛУЧАЕ - как разделить конструкцию (маленькая буква---точка---большая буква) или (цифра---точка---большая буква) пробелом x.Y > x. Y

Автор: krundetz 12.9.2008, 08:40
Есть такой спецсимвол '^' указывает на начало строки тоесть выражение '^x' будет регуляркой для икса в начале строки все остальные иксы найдены не будут

Автор: teroni 12.9.2008, 10:56
2. 
Код

$str = preg_replace('/([a-z0-9])\.([A-Z])/', '$1. $2', $str);

Первое не совсем ясно, по какому принципу определять, что х - лишняя буква.

Автор: Sunvas 12.9.2008, 13:36
Цитата(Rostik Ultra @  12.9.2008,  04:26 Найти цитируемый пост)
В ОБЩЕМ СЛУЧАЕ - как убрать лишние буквы (в разном количестве) в начале предложений ?

http://ua.php.net/ltrim
Код

$s='xPhp is a cool language';
echo ltrim($s,'x');# Выведет Php is a cool language

Автор: Rostik Ultra 12.9.2008, 18:10
Цитата

Есть такой спецсимвол '^' указывает на начало строки тоесть выражение '^x' будет регуляркой для икса в начале строки все остальные иксы найдены не будут 

Цитата

Первое не совсем ясно, по какому принципу определять, что х - лишняя буква. 

я говорю не о конкретной букве а о маленьких буквах или небуквенных символах которые не отделены от первого слова пробелом (которое начинается с заглавной буквы) - короче мусор в начале предложений
Sunvas, речь не о конкретных буквах

а как отделять предложения пробелом ? First sentence and 1.000 number.Second sentence 100.New sentence.

Автор: Sunvas 12.9.2008, 18:52
Rostik Ultra, 
Цитата(Rostik Ultra @  12.9.2008,  18:10 Найти цитируемый пост)
 а о маленьких буквах или небуквенных символах которые не отделены от первого слова пробелом (которое начинается с заглавной буквы) - короче мусор в начале предложений

Код

$s='s#$^Php is a cool language';
echo preg_replace('#^[^A-Z]+#s','',$s);


Добавлено через 4 минуты и 21 секунду
Цитата(Rostik Ultra @  12.9.2008,  18:10 Найти цитируемый пост)
а как отделять предложения пробелом ? First sentence and 1.000 number.Second sentence 100.New sentence.

Код

$s='First sentence and 1.000 number.Second sentence 100.New sentence.';
echo preg_replace('#(?!\s)\.(?=[A-Z])#s','. ',$s);

Автор: Rostik Ultra 12.9.2008, 19:09
спасибо  smile  smile 

Автор: Rostik Ultra 13.9.2008, 19:16
более универсальное решение http://klikforum.com/viewtopic.php?p=96696#96696

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)