从字符串中提取第一个单词 - 正则表达式

时间:2011-02-18 12:48:01

标签: regex

我有以下字符串:


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

这里的观点是可能/可能没有“ - ”的单词

使用正则表达式: 我怎么能提取第一个单词?

感谢您的任何帮助。

谢谢, →

3 个答案:

答案 0 :(得分:44)

这很简单,只需在括号中包含允许的字符:

^([\w\-]+)

答案 1 :(得分:1)

不使用正则表达式的方法:假设第一个单词总是用逗号分隔,“”,你可以这样做:

var str1 = "cat-one";
var i = str1.indexOf(",");
var firstTerm = i == -1 ? str1 : str1.substring(0, i);

编辑:由于某种原因,假设这是一个javascript问题。

答案 2 :(得分:0)

如果有人,有一天想在Swift这里做,你可以使用扩展程序:

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
    }
}

使用它只需写:

myString.firstWord()