Comunidad de diseño web y desarrollo en internet online

Patron en cadena

Citar            
MensajeEscrito el 12 Ene 2010 12:43 am
Hola, estoy empezando a programar en actionscript 3, y estoy intentando hacer un programa en donde quiero buscar una palabra dentro de un string . Aplique indexof, pero tuve el problema de que este metodo solo devuelve un subcadena y no la palabra exacta. El codigo que aplico es el siguiente

Código ActionScript :

var str:String="hola que tal como andas";
trace(str.indexOf("das")); 


En el ejemplo me muestra la posicion donde esta "das", pero no me deberia mostrar nada.

Despues intente hacerlo con patrones de cadenas. Pero no se que patron usar para que solo me de la palabras exacta que busco y no la subcadena.

Código ActionScript :

var str:String="hola que tal como andas";
var pattern:RegExp=/^$/;

trace(str.search("das"));


Por eso les queria preguntar como debo aplicar la busqueda para que me de la palabra exacta. Si debo aplicar un patron¿como debo escribirlo?

Desde ya muchas gracias

Por cartu_32

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ene 2010 10:49 am
Tu primer ejemplo daría bien si agregas espacios:

var str:String="hola que tal como andas";
trace(str.indexOf(" das "));

Pero para hacer una búsqueda realmente potente deberías usar regexp, que cada vez que lo tengo que usar tengo que recurrir al manual porque es todo un palo, dejo la palabra a cualquier "regexperto"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ene 2010 05:30 pm
Tampoco soy ningún experto en Expresiones regulares pero supongo que puedes considerar que una palabra es "palabra" cuando el carácter anterior es un espacio, un tabulador, un retorno de carro, o está al principio de tu frase
Así que supongo que podrás poner, por ejemplo

Código ActionScript :

var str:String="hola que tal como hola andas"; 
var cadena:String="hola"
var pattern:RegExp=new RegExp("^"+cadena+"|[ \t\r]"+cadena,"g"); 
trace(str.replace(pattern, "HOLA"));

Lo "medio explico". Para encontrar una cadena vale con que la expresión sea
new RegExp("cadena")
Si queremos que encuentre una cadena u otra es
new RegExp("cadena1|cadena2")
Si queremos que la cadena la encuentre AL PRINCIPIO del string sería con el ^
new RegExp("^cadena")
Y si queremos que al principio sea cualquiera de los caracteres 1, 2 ó 3
new RegExpr("[123]cadena")

NOTA: El "g" es para que encuentre TODAS, y poder hacer un bucle

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Feb 2010 03:24 pm
Muhcas Gracias! ya lo probe y me funciono :D

Por cartu_32

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.