我有以下字符串:
str1 = "cat-one,cat2,cat-3";
OR
str1 = "catone,cat-2,cat3";
OR
str1 = "catone";
OR
str1 = "cat-one";
这里的重点是单词中可能会有“-”。
使用正则表达式: 我如何提取第一个单词?
感谢任何帮助。
谢谢, L
我有以下字符串:
str1 = "cat-one,cat2,cat-3";
OR
str1 = "catone,cat-2,cat3";
OR
str1 = "catone";
OR
str1 = "cat-one";
这里的重点是单词中可能会有“-”。
使用正则表达式: 我如何提取第一个单词?
感谢任何帮助。
谢谢, L
很简单,只需在方括号中包含允许的字符:
^([\w\-]+)
^([^\w])*([\w\-]+)
还考虑了可能存在的前导空格或非单词字符。 - Ian Cartervar str1 = "cat-one";
var i = str1.indexOf(",");
var firstTerm = i == -1 ? str1 : str1.substring(0, i);
编辑: 假设这是一个JavaScript问题,出于某种原因。
如果有人想在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()
(.*)?
是完全不必要的。 - Seth Johnson