我正在尝试构建一个简单的正则表达式来匹配:
呼叫姓名主页或呼叫名称移动
我正在使用:
call (.*) (?:home|mobile)?
因为家庭或移动设备是可选的。问题是(。*)和可选部分之间的空白区域。此表达式与“call joe”不匹配,因为它需要最后一个空白。如何修改它以考虑可选的空白?
答案 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)?
你已经在最后应用了它,你也想将它应用到空间。