Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2014, 12:05   #11
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
т.е. когда пишешь код и если надо перейти с одного языка на другой то и не нужно изучать тонкостей языка просто регуляку юзаешь и все.
на сколько я знаю регулярка везде разная, если например сравнивать php и delphi
nibufep вне форума Ответить с цитированием
Старый 08.08.2014, 14:59   #12
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

на счет delfi не знаю но js С++, vb php одинаково только методы вызова разные а сами регулярки такиеже, они бывают двух видов перловские и еще какие то, doc.net использует перловские. т.е. под виндовс можно на любом языке, который поддерживает платформу их использовать
тем более автор просил как проще я сделал в 1-у строчку

Последний раз редактировалось wanes101; 08.08.2014 в 15:17.
wanes101 вне форума Ответить с цитированием
Старый 10.08.2014, 04:35   #13
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

PHP код:
<?php
$str
="abracadabra";
 for (
$str;$i<=strlen($str); $i++){
if(
$i%4==0&& $i!==null)
$str_.="-";
$str_.=$str[$i];

}
echo 
$str_
?>
чайник юзеру не товарищ, а сам себе враг...
Аlex вне форума Ответить с цитированием
Старый 10.08.2014, 04:41   #14
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
я их знаю что значит пытаюсь это элементарные вещи
вот было

$text="тестим замену в тексте ";

вот вывод

тест-им з-амен-у в -текс-те

автор говорил что ему через 4-ре символа надо вставить символ - вот вставил, регулярки это классика на любом языке они есть, любой хороший язык программирования их поддерживает
К стати в чем притенения? все верно у тебя вывод верный через каждые 4-ре символа тире
а в том что для решения задачи нужен ОДИН ЦИКЛ ПО СТРОКЕ а если использовать хотя бы одну звездочку в регулярном выражении ну или точку то таких циклов будет использовано 32(в лучшем случае ) прежде чем регулярка найдет совпадение
чайник юзеру не товарищ, а сам себе враг...
Аlex вне форума Ответить с цитированием
Старый 10.08.2014, 10:33   #15
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

Цитата:
Сообщение от Аlex Посмотреть сообщение
а в том что для решения задачи нужен ОДИН ЦИКЛ ПО СТРОКЕ а если использовать хотя бы одну звездочку в регулярном выражении ну или точку то таких циклов будет использовано 32(в лучшем случае ) прежде чем регулярка найдет совпадение
Хорошо что дискуссия, но все же
у меня нету ни звездочки не +
вот
$text=preg_replace('/((?:.|\n){4})(?!$)/i','${1}'.$you_char,$text);
а то точка чтоб вы знали это определяет не кол-во повторений, она значит следующее на языке регулярок:
. - [^\n]
т.е. все кроме переноса строк
сначала все же надо регулярки знать чтоб спорить
wanes101 вне форума Ответить с цитированием
Старый 11.08.2014, 00:21   #16
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
Хорошо что дискуссия, но все же
у меня нету ни звездочки не +
а ничо что поиск по условию всегда осуществляется по НКА алгоритму который предпологает проверку всех возможных алгоритмов разделения жадных и не жадных квантификатором
чайник юзеру не товарищ, а сам себе враг...
Аlex вне форума Ответить с цитированием
Старый 11.08.2014, 22:47   #17
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
я же посчитал, что не так? регулярка просто более ресурсоемка но для сервака это роли не играет. Просто мне кажется это хорошо тем что это можно применять почти на любом яп, т.е. когда пишешь код и если надо перейти с одного языка на другой то и не нужно изучать тонкостей языка просто регуляку юзаешь и все. Ну в споре не чего плохого нету в споре рождается истина
могу еще сказать чтоб в конце не было тире можно сделать так

$text=preg_replace('/((?:.|\n){4})(?!$)/i','${1}'.$you_char,$text);
открою страшную тайну - три for (do while for ) и один if одинаковые во всех языках ну кроме например Erlang и лиспа с асемблером.
чайник юзеру не товарищ, а сам себе враг...

Последний раз редактировалось Аlex; 11.08.2014 в 22:55.
Аlex вне форума Ответить с цитированием
Старый 12.08.2014, 07:10   #18
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

Цитата:
Сообщение от Аlex Посмотреть сообщение
открою страшную тайну - три for (do while for ) и один if одинаковые во всех языках ну кроме например Erlang и лиспа с асемблером.
они то одинаковые и я это знаю. Имею в виду функции поиск подстрок в строке они у каждого свои. А регулярки они и хороши что везде одинаковы. Только методы их вызова разные.
Цитата:
а ничо что поиск по условию всегда осуществляется по НКА алгоритму который предпологает проверку всех возможных алгоритмов разделения жадных и не жадных квантификатором
Для меня это все равно главное что пишется кратко чем меньше строк тем лучше.
Один программист говорил что сначала надо писать красиво, а потом уже оптимизировать. Пусть даже более медленно но зато чтоб код был более ясный.

Последний раз редактировалось wanes101; 12.08.2014 в 07:14.
wanes101 вне форума Ответить с цитированием
Старый 03.05.2021, 11:17   #19
Эй ты
Новичок
Джуниор
 
Регистрация: 16.11.2020
Сообщений: 2
По умолчанию Кодировка

Цитата:
Сообщение от wanes101 Посмотреть сообщение
я же посчитал, что не так? регулярка просто более ресурсоемка но для сервака это роли не играет. Просто мне кажется это хорошо тем что это можно применять почти на любом яп, т.е. когда пишешь код и если надо перейти с одного языка на другой то и не нужно изучать тонкостей языка просто регуляку юзаешь и все. Ну в споре не чего плохого нету в споре рождается истина
могу еще сказать чтоб в конце не было тире можно сделать так

$text=preg_replace('/((?:.|\n){4})(?!$)/i','${1}'.$you_char,$text);
Все бы хорошо. по вместо некоторых букв появляются �. вроде проблема в кодировке. подскажите в какой кодировке работать? конвертировал в UTF-8 без результата.
Код:
$text = mb_convert_encoding($text, 'utf-8', mb_detect_encoding($text));
Эй ты вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить код символа на символ rikomono Microsoft Office Excel 1 24.02.2013 18:47
<br> через каждые 40 символов. Abuhamed PHP 2 25.03.2011 22:52
Пробел через каждые 2 числа KillJoy Паскаль, Turbo Pascal, PascalABC.NET 7 22.12.2010 17:25
Вставлять ячейки через поля слияния Nash1 Фриланс 3 09.07.2009 14:07
Перл. Замена символа \ на символ / Stilet PHP 1 12.04.2008 10:17