我有以下字符串:从字符串中提取的第一个字 - 正则表达式
str1 = "cat-one,cat2,cat-3";
OR
str1 = "catone,cat-2,cat3";
OR
str1 = "catone";
OR
str1 = "cat-one";
这里的要点是的话可能/可能不会有“ - ”,它出现
使用正则表达式: 如何我能提取第一个单词吗?
欣赏这方面的任何帮助。
感谢, 大号
我有以下字符串:从字符串中提取的第一个字 - 正则表达式
str1 = "cat-one,cat2,cat-3";
OR
str1 = "catone,cat-2,cat3";
OR
str1 = "catone";
OR
str1 = "cat-one";
这里的要点是的话可能/可能不会有“ - ”,它出现
使用正则表达式: 如何我能提取第一个单词吗?
欣赏这方面的任何帮助。
感谢, 大号
它很容易,只是包括括号中允许的字符:
^([\w\-]+)
不使用正则表达式的方法:假设第一个字是用逗号总是分隔“ ”你可以这样做:
var str1 = "cat-one";
var i = str1.indexOf(",");
var firstTerm = i == -1 ? str1 : str1.substring(0, i);
编辑:假设的日是一个JavaScript问题,出于某种原因。
如果有人,有一天想做到在斯威夫特在这里你有延期手续:
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()
这所有字符匹配上升到第逗号:^ [^,] + – 2011-02-18 12:52:20
这是我试过(和工作!),并希望这是正确的: 警报(str.replace(/^([^,]+)(.*)?/,“$ 1 “)); – lshettyl 2011-02-18 13:23:39
如果真的所有你想做的事情,这将很好的工作:(。*)?在您的正则表达式警报(str.substring(0,str.indexOf( ''))) – 2011-02-18 14:11:08