带有空格的正则表达式可选

时间:2015-12-10 14:23:40

标签: regex

我正在尝试构建一个简单的正则表达式来匹配:

呼叫姓名主页或呼叫名称移动

我正在使用:

call (.*) (?:home|mobile)?

因为家庭或移动设备是可选的。问题是(。*)和可选部分之间的空白区域。此表达式与“call joe”不匹配,因为它需要最后一个空白。如何修改它以考虑可选的空白?

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("{your_identifier}", forIndexPath: indexPath)
    cell.textLabel?.text = self.departamentos[indexPath.row]
    return cell

}

即。在可选部分中包括^call +(.+)(?: +(?:home|mobile))?$ home之前的空格。另外,建议使用锚mobile^以避免匹配不需要的文字。

答案 1 :(得分:1)

正则表达式允许您通过修饰符告诉它要查找多少个字符。大多数人都熟悉*含义0 or more;您似乎正在寻找?,这意味着0 or 1,与{0,1}相同。

call (.*) ?(?:home|mobile)?

你已经在最后应用了它,你也想将它应用到空间。