una simples extraer especiales escapar dobles dentro concatenar comillas caracteres cadena php string preg-match preg-match-all double-quotes

simples - PHP para extraer una cadena de doble comilla



heredoc php (6)

Tengo una cadena:

Este es un texto, "Tu saldo restante $ 0.10", Fin 0

¿Cómo puedo extraer la cadena entre las comillas dobles y tener solo el texto (sin las comillas dobles)?

Tu saldo es de $ 0.10

He intentado preg_match_all() pero sin suerte.


A diferencia de otras respuestas, esto admite escapes, por ejemplo, "string with /" quote in it" .

$content = stripslashes(preg_match(''/"((?:[^"]|////.)*)"/''));


La expresión regular ''"([^//"]+)"'' coincidirá entre dos comillas dobles.

$string = ''"Your Balance left $0.10", End 0''; preg_match(''"([^//"]+)"'', $string, $result); echo $result[0];


Mientras el formato permanezca igual, puede hacerlo usando una expresión regular. "([^"]+)" coincidirá con el patrón

  • Doble cita
  • Al menos una cita doble
  • Doble cita

Los corchetes alrededor de [^"]+ significa que esa parte se devolverá como un grupo separado.

<?php $str = ''This is a text, "Your Balance left $0.10", End 0''; //forward slashes are the start and end delimeters //third parameter is the array we want to fill with matches if (preg_match(''/"([^"]+)"/'', $str, $m)) { print $m[1]; } else { //preg_match returns the number of matches found, //so if here didn''t match pattern } //output: Your Balance left $0.10


Para todos los que buscan un analizador de cadenas completo, pruebe esto:

(?:(?:"(?://"|[^"])+")|(?:''(?://'|[^''])+''));

Uso en preg_match:

$haystack = "something else before ''Lars/' Teststring in quotes'' something else after"; preg_match("/(?:(?:/"(?://///"|[^/"])+/")|(?:''(?:///'|[^''])+''))/is",$haystack,$match);

Devoluciones:

Array ( [0] => ''Lars/' Teststring in quotes'' )

Esto funciona con fragmentos de cadena entre comillas simples y dobles.


Prueba esto :

preg_match_all(''`"([^"]*)"`'', $string, $results);

Debería obtener todas las cadenas extraídas en $ resultados [1].


Solo usa str_replace y escapa de la cita:

str_replace("/"","",$yourString);

Editar:

Lo sentimos, no vi que había texto después de la segunda cita. En ese caso, simplemente realizaría 2 búsquedas, una para la primera cita y otra para la segunda cita, y luego realizaría un resumen para agregar todas las cosas entre las dos.