Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
[PHP] странная работа регулярных выражений
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Необходимо написать регулярное выражение, чтобы удалить из строки все символы, кроме латинских букв, цифр, дефиса и нижнего подчёркивания. Написал следующий код: $str_input="one__two__2140-00E;"; echo ereg_replace("[^a-zA-Z0-9\-\_]","",$str_input); всё отработало правильно, за исключением того, что удалился дефис между 2140 и 00, результат: one__two__214000E если в регулярном выражении поменять \- и \_, всё отработает полностью правильно: ereg_replace("[^a-zA-Z0-9\_\-]","",$str_input) результат: one__two__2140-00E Но почему так происходит? Какая разница, в каком порядке перечислены символы? Объясните пожалуйста чайнику... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 10:28 |
|
||
|
[PHP] странная работа регулярных выражений
|
|||
|---|---|---|---|
|
#18+
Кавычки то двойные, а слеш не экранирован... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 10:48 |
|
||
|
[PHP] странная работа регулярных выражений
|
|||
|---|---|---|---|
|
#18+
vkle, поменял на одинарные, ничего не изменилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:30 |
|
||
|
[PHP] странная работа регулярных выражений
|
|||
|---|---|---|---|
|
#18+
Vasiliy_Kashkin, Во-первых, лучше пользовать preg_replace (она быстрее и не устаревшая) Во-вторых, лучше не менять на одинарные кавыки, а экранировать слэши ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 16:16 |
|
||
|
[PHP] странная работа регулярных выражений
|
|||
|---|---|---|---|
|
#18+
Vasiliy_Kashkin, Странно. Вроде соответствует мануалу: http://www.regular-expressions.info/charclass.html The closing bracket (]), the caret (^) and the hyphen (-) can be included by escaping them with a backslash, or by placing them in a position where they do not take on their special meaning.Хотя, немного смущают последние слова... PS: Может на preg_replace() пора перейти? Там такой проблемы не припоминаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 16:16 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=93&tid=1463052]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 353ms |

| 0 / 0 |
