Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) preg_replace помогите с регуляркой / 16 сообщений из 16, страница 1 из 1
17.03.2010, 20:52:18
    #36527083
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Добрый.
Есть много строк с текстом, например:
Код: plaintext
1.
$texp = "ека их нет Тогда, когда мне нужно, их всегда нет"; 
$zamtexp = preg_replace("(/(а-я)/","",$texp);
Требуется регулярка, которой эти слова "ека их нет " - лишние, заменить на пустое место "". В других случаях эти слова могут быть любыми, но начинаются всегда с маленькой буквы, а заканчиваются большой буквой следующего предложения, в данном примере буква "Т" от слова "Тогда".
В итоге $zamtexp должна содержать "Тогда, когда мне нужно, их всегда нет"
...
Рейтинг: 0 / 0
17.03.2010, 21:39:38
    #36527134
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
son4,

/[^А-ЯЁЧЙ]+(?=[А-ЯЕЧЙ])/
...
Рейтинг: 0 / 0
17.03.2010, 22:08:10
    #36527182
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
an0nymson4,

/[^А-ЯЁЧЙ]+(?=[А-ЯЕЧЙ])/

Спасибо, работает. Но если пример будет таким

Код: plaintext
$texp = "ека их нет Тогда, когда мне Нужно, их Всегда нет";
то результат = "ТНВсегда нет".

Как все это применить только к первой заглавной букве?
И второй вариант - к последней, как есть сейчас
...
Рейтинг: 0 / 0
17.03.2010, 22:22:23
    #36527194
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
/^[^А-ЯЁЧЙ]+(?=[А-ЯЕЧЙ])/
...
Рейтинг: 0 / 0
17.03.2010, 22:29:24
    #36527202
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
an0nym,
Спасибо, оно самое.
...
Рейтинг: 0 / 0
24.03.2010, 20:26:22
    #36540784
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Пытаюсь вытащить ссылку, выделенную зеленым, так:
Код: plaintext
preg_match_all("#\[\"/imgres?imgurl\\x3dhttp://(.*?)\\x26imgrefurl\\x3dhttp://#",$tmp,$link);

[ "/imgres?imgurl\x3dhttp://www.remonts.net/1.jpg\x26imgrefurl\x3dhttp://www.remonts.net/otdelka_i_remont_kvartir_pod_kljuch.html\x26usg\x3d__c1CotWebh-vGRHMhBSMQB7pvM24\x3d\x26h\x3d400\x26w\x3d520\x26sz\x3d20\x26hl\x3dru\x26start\x3d45\x26itbs\x3d1"," target\x3d_blank","NurJlWSL2OJCFM:","http://www.remonts.net/1.jpg","131","101","\x3cb\x3eремонту квартир\x3c/b\x3e","","","520 x 400 - 20k","jpg","remonts.net","","","http://t1.gstatic.com/images","1",[],"",1,"",[],"","" ] ,


этот набор букв только для одного изображения, таких 20. Может кто-то помочь с регуляркой?
...
Рейтинг: 0 / 0
24.03.2010, 21:14:51
    #36540872
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
son4,

лично мне непонятно:
1. какие подстроки надо вытаскивать,
2. почему их - т. е. непонятно, какова должна быть логика применения конечного шаблона.

Уточните.
...
Рейтинг: 0 / 0
24.03.2010, 22:00:22
    #36540948
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
an0nym,
конкретно вытащить нужно то, что выделено зеленым цветом, т.е. из всего только одну ссылку в чистом виде. Проблема для меня - бек слеши. Если предварительно чистить весь текст от обратных слешей, то шаблон
Код: plaintext
preg_match_all("#imgres\?imgurlx3dhttp://(.*?)x26imgrefurlx3dhttp://#",$tmp,$link);
работает, т.е. итог = тому, что выделил зеленым в предидущем посте.
...
Рейтинг: 0 / 0
24.03.2010, 22:15:56
    #36540965
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
son4,

а почему-бы не вытащить его из другой части приведенного вами текста:

автор["/imgres?imgurl\x3dhttp://www.remonts.net/1.jpg\x26imgrefurl\x3dhttp://www.remonts.net/otdelka_i_remont_kvartir_pod_kljuch.html\x26usg\x3d__c1CotWebh-vGRHMhBSMQB7pvM24\x3d\x26h\x3d400\x26w\x3d520\x26sz\x3d20\x26hl\x3dru\x26start\x3d45\x26itbs\x3d1"," target\x3d_blank","NurJlWSL2OJCFM:", "http://www.remonts.net/1.jpg" ,"131","101","\x3cb\x3eремонту квартир\x3c/b\x3e","","","520 x 400 - 20k","jpg","remonts.net","","","http://t1.gstatic.com/images","1",[],"",1,"",[],"",""],
...
Рейтинг: 0 / 0
24.03.2010, 22:54:12
    #36541020
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Anjey aka PM,
я не знаю, какой будет эта ссылка. В любом другом случае окружающий текст динамический, а в первом случае - постоянный:
["/imgres?imgurl\x3dhttp:// www.remonts.net/1.jpg \x26imgrefurl\x3dhttp://
...
Рейтинг: 0 / 0
24.03.2010, 22:54:33
    #36541022
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Anjey aka PM,
я не знаю, какой будет эта ссылка. В любом другом случае окружающий текст динамический, а в первом случае - постоянный:
["/imgres?imgurl\x3dhttp:// www.remonts.net/1.jpg \x26imgrefurl\x3dhttp://
...
Рейтинг: 0 / 0
24.03.2010, 23:02:59
    #36541036
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
son4,

Код: plaintext
1.
2.
3.
4.
5.
<?php
$subject = <<<TEST
["/imgres?imgurl\x3dhttp://www.remonts.net/1.jpg\x26imgrefurl\x3dhttp://www.remonts.net/otdelka_i_remont_kvartir_pod_kljuch.html\x26usg\x3d__c1CotWebh-vGRHMhBSMQB7pvM24\x3d\x26h\x3d400\x26w\x3d520\x26sz\x3d20\x26hl\x3dru\x26start\x3d45\x26itbs\x3d1"," target\x3d_blank","NurJlWSL2OJCFM:","http://www.remonts.net/1.jpg","131","101","\x3cb\x3eремонту квартир\x3c/b\x3e","","","520 x 400 - 20k","jpg","remonts.net","","","http://t1.gstatic.com/images","1",[],"", 1 ,"",[],"",""],
TEST;
preg_match('#\["/imgres\?imgurl\\x3d(.*?)\\x26imgrefurl\\x3dhttp://#', $subject, $matches);
var_dump($matches);
...
Рейтинг: 0 / 0
28.03.2010, 21:49:55
    #36547183
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
an0nym,
Есть вещи, которые тяжело даются) С регулярками у меня пока так.

Два вопроса.
Предложение: никогда в жизни не было случая, что несоответствие было в характере, а

1. После запятой и пробела в конце предложения может быть слово от 1 до 6 символов, если так, то удалить их вместе с запятой.

2. Можно ли как-то в начале предложения заменять строчные на заглавные?
...
Рейтинг: 0 / 0
29.03.2010, 08:28:02
    #36547420
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
son42. Можно ли как-то в начале предложения заменять строчные на заглавные?

http://www.php.net/manual/en/reference.pcre.pattern.differences.php The following Perl escape sequences are not supported: \l, \u, \L, \U. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine. Так что разве-что с помощью call-back функции....
...
Рейтинг: 0 / 0
30.03.2010, 17:52:21
    #36551230
son4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Anjey aka PM,

пришлось нагородить, но проблему решил.

Но, сейчас случайно получилась такая штука
Код: plaintext
$premass=preg_replace("/^(.*?)+[А-Я]/s","",$premass);
которая делает следующее: из слов Радуйтесь, что в вас..., после замены получил Адуйтесь, что в вас..., хотя не понимаю, как получилось, да и хотел совсем другого. Как это доработать, дабы заменить первую, а не вторую букву
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.04.2012, 21:03:43
    #37751325
ДмитрийВ.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) preg_replace помогите с регуляркой
Подсобите, прошу.
перебить eregi на preg_match
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
<?php
/**
 * SPAW Editor v.2 Utility classes
 * 
 * @package spaw2
 * @subpackage Util  
 * @author Alan Mendelevich <alan@solmetra.lt>; 
 * @copyright UAB Solmetra
 */ 

/**
 * Variable access class
 * 
 * Returns values of variable from global arrays independent of PHP version and settings
 * @package spaw2
 * @subpackage Util
 */
class SpawVars
{
  /**
   * Returns GET variable value
   * @param string $var_name variable name
   * @param string $empty_value value to return if variable is empty
   * @returns string
   * @static   
   */              
  function getGetVar($var_name, $empty_value='')
  {
    global $HTTP_GET_VARS;
    if (!empty($_GET[$var_name]))
      return $_GET[$var_name];
    elseif (!empty($HTTP_GET_VARS[$var_name]))
      return $HTTP_GET_VARS[$var_name];
    else
      return $empty_value;
  }

  /**
   * Returns POST variable value
   * @param string $var_name variable name
   * @param string $empty_value value to return if variable is empty
   * @returns string
   * @static
   */      
  function getPostVar($var_name, $empty_value='')
  {
    global $HTTP_POST_VARS;
    if (!empty($_POST[$var_name]))
      return $_POST[$var_name];
    else if (!empty($HTTP_POST_VARS[$var_name]))
      return $HTTP_POST_VARS[$var_name];
    else
      return $empty_value;
  }
  
  /**
   * Returns FILES variable value
   * @param string $var_name variable name
   * @param string $empty_value value to return if variable is empty
   * @returns mixed
   * @static
   */      
  function getFilesVar($var_name, $empty_value='')
  {
    global $HTTP_POST_FILES;
    if (!empty($_FILES[$var_name]))
      return $_FILES[$var_name];
    else if (!empty($HTTP_POST_FILES[$var_name]))
      return $HTTP_POST_FILES[$var_name];
    else
      return $empty_value;
  }
  
  /**
   * Returns SERVER variable value
   * @param string $var_name variable name
   * @param string $empty_value value to return if variable is empty
   * @returns string
   * @static
   */      
  function getServerVar($var_name, $empty_value='')
  {
    global $HTTP_SERVER_VARS;
    if (!empty($_SERVER[$var_name]))
      return $_SERVER[$var_name];
    else if (!empty($HTTP_SERVER_VARS[$var_name]))
      return $HTTP_SERVER_VARS[$var_name];
    else
      return $empty_value;
  }

  /**
   * Returns SESSION variable value
   * @param string $var_name variable name
   * @param string $empty_value value to return if variable is empty
   * @returns string
   * @static
   */      
  function getSessionVar($var_name, $empty_value='')
  {
    global $HTTP_SESSION_VARS;
    if (!empty($_SESSION[$var_name]))
      return $_SESSION[$var_name];
    else if (!empty($HTTP_SESSION_VARS[$var_name]))
      return $HTTP_SESSION_VARS[$var_name];
    else
      return $empty_value;
  }

  /**
   * Sets SESSION variable value
   * @param string $var_name variable name
   * @param string $value value to set
   * @static
   */      
  function setSessionVar($var_name, $value='')
  {
    global $HTTP_SESSION_VARS;
    if (isset($_SESSION))
      $_SESSION[$var_name] = $value;
    else if (isset($HTTP_SESSION_VARS))
      $HTTP_SESSION_VARS[$var_name] = $value;
  }
  
  /**
   * Strips slashes from variable if magic_quotes is on
   * @param string $var variable
   * @returns string
   * @static   
   */              
  function stripSlashes($var)
  {
    if (get_magic_quotes_gpc()) {
      return stripslashes($var);
    }
    return $var;
  }

}     

/**
 * Usupported browser
 */ 
define("SPAW_AGENT_UNSUPPORTED", 0);
/**
 * Microsoft Internet Explorer for Windows version 5.5 or higher
 */ 
define("SPAW_AGENT_IE", 15);
/**
 * Gecko based browser with engine built on 2003-03-12 or later
 */ 
define("SPAW_AGENT_GECKO", 240);
/**
 * Opera 9 or higher
 */
define("SPAW_AGENT_OPERA", 3840); 
/**
 * Safari 3 or higher
 */ 
define("SPAW_AGENT_SAFARI", 61440);
/**
 * All supported browsers
 */ 
define("SPAW_AGENT_ALL", 65535);

/**
 * Provides itformation about current user agent (browser)
 * @package spaw2
 * @subpackage Util
 */   
class SpawAgent
{
  /**
   * Returns constant representing user agent (browser) in SPAW terms
   * @returns integer
   * @static
   * @see SPAW_AGENT_UNSUPPORTED, SPAW_AGENT_IE, SPAW_AGENT_GECKO          
   */     
  function getAgent()
  {
    $result = SPAW_AGENT_UNSUPPORTED;
    $browser = SpawVars::GetServerVar('HTTP_USER_AGENT');
    //echo $browser;
    // check if msie
    if (eregi("MSIE[^;]*",$browser,$msie))
    {
      // get version 
      if (eregi("[0-9]+\.[0-9]+",$msie[0],$version))
      {
        // check version
        if ((float)$version[0]>=5.5)
        {
          // finally check if it's not opera impersonating ie
          if (!eregi("opera",$browser))
          {
            $result = SPAW_AGENT_IE;
          }
        }
      }
    }
    elseif (ereg("Gecko/([0-9]*)",$browser,$build))
    {
      // build date of Mozilla version 1.3 is 20030312
      if ($build[1] > "20030312")
        $result = SPAW_AGENT_GECKO;
    }
    elseif (eregi("Opera/([0-9]*)", $browser, $opera))
    {
      if ((float)$opera[1] >= 9)
        $result = SPAW_AGENT_OPERA;
    }
    elseif (eregi("Safari/([0-9]*)", $browser, $safari))
    {
      // safari build 500 or higher (safari 3 or newer)
      if ((float)$safari[1] >= 500)
        $result = SPAW_AGENT_SAFARI;
    }
    return $result;
  }
  
  /**
   * Returns string representation of current user agent to be used as part of file extension or dir name
   * @returns string   
   * @static
   */        
  function getAgentName()
  {
    $result = '';
    switch(SpawAgent::getAgent())
    {
      case SPAW_AGENT_IE:
        $result = 'ie';
        break;
      case SPAW_AGENT_GECKO:
        $result = 'gecko';
        break;
      case SPAW_AGENT_OPERA:
        $result = 'opera';
        break;
      case SPAW_AGENT_SAFARI:
        $result = 'safari';
        break;
      default:
        $result = '';
        break;
    }
    return $result;
  }
} 

?>
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) preg_replace помогите с регуляркой / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]