|
| |
|
|
| |
для: Shorr Kan
(26.07.2006 в 11:14)
| | | >Вариант ЯR - я не понял, как работает, но работает.
А что тут непонятного?
Заменяется всё, что подходит под шаблон. Лимит - 1. | |
| |
|
|
| |
|
|
| |
для: Axxil
(26.07.2006 в 11:08)
| | | Вариант ЯR - я не понял, как работает, но работает.
А вот ваш, Axxil, работает так, что я даже понял...
Спасибо :) | |
| |
|
|
| |
|
|
| |
для: Shorr Kan
(24.07.2006 в 16:25)
| | | Вот типа того:
<?
$str = "<table>
<tr>
<td>[text_30]</td>
<td>[text_20]</td>
</tr>
<tr>
<td>[text_30]</td>
<td>[text_30]</td>
</tr>
</table> ";
$pattern = '|\[([^\]]*)\]|is';
preg_match_all($pattern,$str,$out);
print_r($out[1]);
foreach($out[1] as $key=>$item){
$str = preg_replace("|\[".$item."\]|is",'$text'.$key,$str,1);
}
echo htmlentities($str);
?>
|
| |
| |
|
|
| |
|
|
| |
для: Shorr Kan
(26.07.2006 в 10:44)
| | | Может так:
<?php
$str = "<table>
<tr> <td>[text_30]</td> <td>[text_20]</td> </tr>
<tr> <td>[text_30]</td> <td>[text_30]</td> </tr>
</table> ";
$n = 30;
preg_replace("#(.*)<td>\[text_$n\]</td>(.*)#i", "\\1<td>$text1</td>\\2", $str, 1);
?>
|
? | |
| |
|
|
| |
|
|
| |
для: Shorr Kan
(26.07.2006 в 10:00)
| | | Да просто с теоремой Ферма лоханулся, вот и убрал чтоб не позориться :)
Нобелевская премия $1.000.000 если не ошибаюсь.
Но дают её обычно лет через 20 после открытия. Так что надо торопиться :)
У функции preg_replace есть 4 параметр который и ограничивает кол-во замен.
Только пока не врублюсь какэто к вашему случаю приделать...
Щас покумекаем | |
| |
|
|
| |
|
|
| |
для: Duran
(26.07.2006 в 10:06)
| | | Проблема в том, что у меня нет самой исходной задачи. У меня есть желаемая человеком реализация - и я её должен реализовать. То есть - я не могу написать задачу. Если бы мог - я бы, как уже сказал, решил бы другим макаром это.
Но! У меня дано изначально: [text_N] , где N - это количество выполняемых действий. Как вы полнимаете - в одном документе text_N может быть и одинаковым - нельзя НЕ рассчитывать на это. Именно поэтому я и решаю проблему - человек может ввести в один документ не единожды text_30 ... а пять раз. Мне нужно только сделать замену первого найденного соответствия
http://php.net/str_replace - взгляните на параметр count. Это то, что мне нужно. И только. В php4 этого нет. Но, видимо, есть аналогичная возможность, используя регулярные выражения.
Как видите - я не создаю проблему. Я ищу решение к поставленной мне задаче, которая звучит примерно так - "реализация должна быть такая".
Вы никогда не встречались с необходимостью сделать именно так, а не иначе, даже если иначе было бы и проще, и умнее, и лучше, и надежнее? Если нет - вот, косвенно встретились... | |
| |
|
|
| |
|
|
| |
для: Shorr Kan
(26.07.2006 в 10:00)
| | | Макрос - вообще штука применимая тока к "вживляемым" объектам, например приложение VBA в excell. Здесь скорее всего применимо понятие "шаблон". Проблема в том, что вы не даете нам саму задачу, а желаете найти реализацию вашего решения поставленной задачи.
Если вам нужно найти решение, а не создавать проблему, может стоит написать именно саму задачу ? | |
| |
|
|
| |
|
|
| |
для: Axxil
(26.07.2006 в 09:56)
| | | Не-не, нехорошо прятать бизнес-предложение... :) | |
| |
|
|
| |
|
|
| |
для: Shorr Kan
(26.07.2006 в 09:55)
| | | - | |
| |
|
|
| |
|
|
| |
для: Axxil
(26.07.2006 в 09:47)
| | | Именно так - нельзя. Делай я для себя - я бы, конечно, сделал [text_N_M] - где N - уникальный номер, а M - эти самые "30", "20", "40", и так далее. Но я делаю не для себя - и от меня ждут этого решения.
Да и потом - вот теперь уже - просто интересно. Будь это php5 - я бы сделал просто str_replace(); - с четтвертым параметром (count), но неужели на php4 этого же сделать нельзя? В частности - неужели регулярные выражения не могут произвести замену "A" на "B" - только один раз, в самом первом встреченном месте?
А что касается нобелевской премии - а зачем?... Был бы смысл - доказали бы. А если после этого будет смысл доказать обратное - докажем и обратное. Математика - наука точная, но витиеватая. Да и потом - вопрос по теме строковых функций и регулярных выражений, а не по разделу math...
А какова сумма нобелевской премии? | |
| |
|
|
|