Mostrando entradas con la etiqueta string. Mostrar todas las entradas
Mostrando entradas con la etiqueta string. Mostrar todas las entradas

miércoles, 26 de agosto de 2015

Saber si un string está contenido dentro de otro string


La función index y rindex en Perl

La función index en Perl devuelve la posición de un substring dentro de un string. Si no lo encuentra devuelve -1. Tiene un tercer parámetro opcional que marca en qué posición comenzar la búsqueda. Por defecto comienza a buscar desde el inicio del string.
La función rindex busca la última posición del substring dentro de un string. El tercer parámetro opcional marca en qué posición comenzar la búsqueda, si no se da ninguna posición empieza por el final del string.

my $cadena = "Mauricio compra todo con tarjeta";
my ($subc1,$subc2) = ('compra','vende');
print index($cadena,$subc1); # imprime 9
print index($cadena,$subc1,10); # imprime -1
print index($cadena,$subc2); # imprime -1

Encontrar todos los substrings


my $abc = "Luis le prestó a Ana lo que Luisa no le pudo prestar a Luisana\n";
my $pos = length($abc) - 1; # Calcular la posición del último carácter 
print "Luis se encontró en las posiciones: ";

while(1)
{
  $pos = rindex($abc, "Luis", $pos);
  last if($pos< 0);
  print $pos--, " ";  # 55 28 0
}

print "\n";


La función strpos y strrpos en Php

La función strpos en Php devuelve la primer ocurrencia de un substring dentro de un string. Si no lo encuentra devuelve false. El valor 0 no debe confundirse con el valor false, 0 es la primer posición del string. Tiene un tercer parámetro opcional que indica desde qué posición empezar la búsqueda.
La función strrpos busca desde el final de la cadena hacia atrás. El tercer parámetro indica desde qué posición empezar a buscar y puede ser negativo, en ese caso cuenta la posición a buscar desde el final del string.

$mystring = 'Daniel sólo vende en efectivo';
$findme   = 'Dan';
$pos = strpos($mystring, $findme);

// Debe usar el operador !== . Usar != podría dar resultados inesperados
// porque la posición de 'Dan' es 0. La comparación (0 != false) evalúa
// a false.
if ($pos !== false) {
     echo "El string '$findme' fue encontrado en el string '$mystring'";
         echo " y existe en la posición $pos";
} else {
     echo "El string '$findme' no fue encontrado en el string '$mystring'";
}
$foo = "0123456789a123456789b123456789c";

var_dump(strrpos($foo, '7', -5));  // Comienza la búsqueda hacia atrás en la 5ta
                                   // posición desde el final. Resultado: int(17)

var_dump(strrpos($foo, '7', 20));  // Comienza la búsqueda desde la posición 20
                                   // del string. Resultado: int(27)

La función indexOf y lastIndexOf en Javascript

La función indexOf en Javascript devuelve la posición de un substring dentro de un string. Si no lo encuentra devuelve -1. Tiene un tercer parámetro opcional que marca en qué posición comenzar la búsqueda. Por defecto comienza a buscar desde el inicio del string.
La función lastIndexOf busca la última posición del substring dentro de un string. El tercer parámetro opcional marca en qué posición comenzar la búsqueda, si no se da ninguna posición empieza por el final del string.

// Ejemplo 1
var str = "Los teléfonos celulares se vuelven cada día más inteligentes";
var n = str.indexOf("e"); 
alert(n); // muestra un 5

// Ejemplo 2
var str = "La inteligencia no se puede medir con un número";
var n = str.lastIndexOf("z", 20); 
alert(n); // muestra un -1

domingo, 23 de agosto de 2015

Calcular la longitud de un string


Función length en Perl

La función length trae la longitud de un string.

#Ejemplo
print length("cadena"); # imprime 6


Función strlen en Php

La función strlen devuelve la longitud de un string.

$str 'abecedario';
echo strlen($str); // imprime 10


Propiedad length en Javascript

La propiedad length devuelve la longitud de un string.

var str = "Hello World!";
var n = str.length; // 12

martes, 18 de agosto de 2015

Separar un string por un delimitador



Comando split en Perl

En Perl la función split devuelve un array de strings como resultado de dividir un array por un carácter delimitador o por un string. Por ejemplo:

# Ejemplo 1
my $pizza  = "porcion1 porcion2 porcion3 porcion4 porcion5 porcion6";
my @porciones = split(" ", $pizza);
print $porciones[0]; # porcion1
print $porciones[1]; # porcion2

# Ejemplo 2
my $data = "foo:*:1023:1000::/home/foo:/bin/sh";
my ($user, $pass, $uid, $gid, $gecos, $home, $shell) = split(":", $data);
print $user; # foo
print $pass; # *


# Ejemplo 3
use Data::Dumper;

my $str = 'one,two,three,four';

# limite positivo
my @count = split(',', $str, 2);
print Dumper(\@count);

# limite negativo no tiene efecto
@count = split(',',$str,-1);
print Dumper(\@count);
$VAR1 = [
          'one',
          'two,three,four'
        ];
$VAR1 = [
          'one',
          'two',
          'three',
          'four'
        ];


Comando explode en Php

En Php la función explode devuelve un array de strings como resultado de dividir un array por un carácter delimitador o por un string. Por ejemplo:

Array
(
    [0] => one
    [1] => two,three,four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)


Comando split en Javascript

En Javascript la función split devuelve un array de strings como resultado de dividir un array por un carácter delimitador o por un string. Por ejemplo:

// Ejemplo 1
var pizza  = "porcion1 porcion2 porcion3 porcion4 porcion5 porcion6";
var porciones = pizza.split(" ");
alert(porciones[0]); // porcion1
alert(porciones[1]); // porcion2

// Ejemplo 2
var str = "Hola Mundo!";
// sin usar delimitador devuelve el mismo string
var res = str.split();
alert(res); // Hola Mundo! 


// Ejemplo 3
var str = 'one,two,three,four';

// limite positivo
console.log(str.split(',', 2));

// limite negativo no tiene efecto
console.log(str.split(',', -1));
["one", "two"]

["one", "two", "three", "four"]


martes, 21 de julio de 2015

Testear con Perl una expresión regular

En la vida de todo programador Perl hay un momento especial en el que hay que escribir una expresión regular. Entonces nos encontramos con que nuestro patrón matchea con más o menos de lo esperado. O nada en realidad.
Este script es util para testear nuestros patrones de ExpReg con algún string y ver si matchea y dónde matchea:

    #!/usr/bin/perl

    # lee una linea de entrada a la vez
    while (<>) {
      chomp;
      if (/YOUR_PATTERN_GOES_HERE/) {
        # codigo misterios! ver explicacion
        print "Matched: |$`<$&>$'|\n"; 
      } else {
        print "No match.\n";
      }
    }

Este script es un test para que lo usen los programadores, no los usuarios finales. Por eso no tienen ningún prompt ni información de cómo se usa. Toma cualquier número de líneas como entrada y chequea cada una contra el patrón que colocas en lugar de "YOUR_PATTERN_GOES_HERE". Para cada línea que matchea se ejecuta el "codigo misterioso". Lo que hace es colocar entre paréntesis angulares el string que coincide con el patrón. Por ejemplo si el patrón es /match/ y la línea de entrada es antesmatchdespues, la salida dirá "antes<match>despues". De esta forma se hace más visible con qué parte de la cadena matchea el patrón. Prueba y verás!