una texto regulares probar operaciones manejo expresiones con caracteres caracter cadenas cadena buscar java string matching

texto - Coincidencia de patrones de cadena en Java



string en java (4)

Quiero buscar un patrón de cadena dado en una cadena de entrada.

Por ej.

String URL = "https://localhost:8080/sbs/01.00/sip/dreamworks/v/01.00/cui/print/$fwVer/{$fwVer}/$lang/en/$model/{$model}/$region/us/$imageBg/{$imageBg}/$imageH/{$imageH}/$imageSz/{$imageSz}/$imageW/{$imageW}/movie/Kung_Fu_Panda_two/categories/3D_Pix/item/{item}/_back/2?$uniqueID={$uniqueID}"

Ahora necesito buscar si la cadena URL contiene " /{item}/ ". Por favor, ayúdame.

Esto es un ejemplo. En realidad, lo que necesito es verificar si la URL contiene una cadena que coincida con "/ {a-zA-Z0-9} /"


Eso es sólo una cuestión de String.contains . String.contains :

if (input.contains("{item}"))

Si necesita saber dónde ocurre, puede usar indexOf :

int index = input.indexOf("{item}"); if (index != -1) // -1 means "not found" { ... }

Eso está bien para hacer coincidir las cadenas exactas : si necesita patrones reales (por ejemplo, "tres dígitos seguidos por un máximo de 2 letras AC"), entonces debería buscar expresiones regulares .

EDIT: Está bien, suena como si quieres expresiones regulares. Es posible que desee algo como esto:

private static final Pattern URL_PATTERN = Pattern.compile("///{[a-zA-Z0-9]+//}/"); ... if (URL_PATTERN.matches(input).find())


Puede hacerlo usando string.indexOf("{item}") . Si el resultado es mayor que -1 {item} está en la cadena


Puedes usar la clase de Pattern para esto. Si desea hacer coincidir solo los caracteres de las palabras dentro de {} , puede usar la siguiente expresión regular. /w es una abreviatura de [a-zA-Z0-9_] . Si está de acuerdo con _ , use /w o, si no, use [a-zA-Z0-9] .

String URL = "https://localhost:8080/sbs/01.00/sip/dreamworks/v/01.00/cui/print/$fwVer/{$fwVer}/$lang/en/$model/{$model}/$region/us/$imageBg/{$imageBg}/$imageH/{$imageH}/$imageSz/{$imageSz}/$imageW/{$imageW}/movie/Kung_Fu_Panda_two/categories/3D_Pix/item/{item}/_back/2?$uniqueID={$uniqueID}"; Pattern pattern = Pattern.compile("///{//w+//}/"); Matcher matcher = pattern.matcher(URL); if (matcher.find()) { System.out.println(matcher.group(0)); //prints /{item}/ } else { System.out.println("Match not found"); }


Si desea comprobar si alguna cadena está presente en otra cadena, use algo como String.contains

Si desea verificar si algún patrón está presente en una cadena, agregue y anteponga el patrón con ''. *''. El resultado aceptará cadenas que contengan el patrón.

Ejemplo: Supongamos que tiene alguna expresión regular a (b | c) que verifica si una cadena coincide con ab o ac
.*(a(b|c)).* comprobará si una cadena contiene un ab o ac .

Una desventaja de este método es que no le dará la ubicación del partido.