2011-02-18 61 views
16

我有以下字符串:从字符串中提取的第一个字 - 正则表达式


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

这里的要点是的话可能/可能不会有“ - ”,它出现

使用正则表达式: 如何我能提取第一个单词吗?

欣赏这方面的任何帮助。

感谢, 大号

+0

这所有字符匹配上升到第逗号:^ [^,] + – 2011-02-18 12:52:20

+0

这是我试过(和工作!),并希望这是正确的: 警报(str.replace(/^([^,]+)(.*)?/,“$ 1 “)); – lshettyl 2011-02-18 13:23:39

+0

如果真的所有你想做的事情,这将很好的工作:(。*)?在您的正则表达式警报(str.substring(0,str.indexOf( ''))) – 2011-02-18 14:11:08

回答

35

它很容易,只是包括括号中允许的字符:

^([\w\-]+)

1

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

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

编辑:假设的日是一个JavaScript问题,出于某种原因。

0

如果有人,有一天想做到在斯威夫特在这里你有延期手续:

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() 
相关问题