online - regex tutorial




extraer la primera palabra de una cadena-expresiones regulares (2)

Tengo la siguiente cadena:


str1 = "cat-one,cat2,cat-3";
OR
str1 = "catone,cat-2,cat3";
OR
str1 = "catone";
OR
str1 = "cat-one";

El punto aquí es que las palabras pueden / no pueden tener "-" en ella

Uso de expresiones regulares: ¿Cómo podría extraer la primera palabra?

Aprecio cualquier ayuda en esto.

Gracias l


Es bastante fácil, solo incluye caracteres permitidos entre paréntesis:

^([\w\-]+)


Si alguien, algún día quisiera hacerlo en Swift, aquí tiene una extensión:

extension String {

    func firstWord() -> String? {
        var error : NSError?
        let internalExpression = NSRegularExpression(pattern: "^[a-zA-Z0-9]*", options: .CaseInsensitive, error: &error)!
        let matches = internalExpression.matchesInString(self, options: nil, range:NSMakeRange(0, countElements(self)))
        if (matches.count > 0) {
            let range = (matches[0] as NSTextCheckingResult).range
            return (self as NSString).substringWithRange(range)
        }
        return nil
    }
}

Para usarlo solo escribe:

myString.firstWord()




regex