У меня есть строка с числами, и у меня есть шаблон для соответствия строке и получения определенных чисел этой строки.regex найти номер между 3 пробелами после номера с разделителем?
202-715-1278 2 0.01% 0.30 0.00% $0.00 0.00%
202-715-1278 21 0.01% 0.30 0.00% $0.00 0.00%
202-715-1278 210 0.01% 0.30 0.00% $0.00 0.00%
узор
\b[0-9]{3}\s*[-]\s*[0-9]{3}\s*[-]\s*[0-9]{4}|(?<!\$)\b[-+]?\d+\.\d+\b(?!%)|(\$\d+(?:\.\d+)?)\b
этот шаблон вернуть номер телефона, первое число с плавающей запятой, которое 0,30 и цена.
что мне нужно, чтобы вернуть номер между 2-м местом после номера телефона, который равен 2, 21 или 210 в этом примере.
не 'взрываются бы («\ п», str_replace («\ г»,«», $ строка))' быть лучше, так как данные могут поступать из источника, который не запускается такая же оперативная система? Если данные поступают из источника Linux, 'PHP_EOL', скорее всего, будет' \ n' (из источника), но сервер, на котором работает PHP, может полагать, что 'PHP_EOL' является' \ r \ n' и, следовательно, не взрывает ничего вообще. – h2ooooooo
@ h2ooooooo Да, разделитель строк будет нуждаться в особом внимании, если файл не поступает из linux box, а php работает на linux. 'PHP_EOL' - всего лишь пример, и мне больше всего нравится в моих ответах. потому что если я просто напишу '\ r \ n', он не будет работать в UNIX, если я наберу' \ n', он не будет работать в Windows. Вы не можете сделать это правильно, не зная больше о приложении. Я думаю, что 'PHP_EOL' хотя бы выразителен – hek2mgl