NSDataDetector Fails With Specific Keywords in String Being Searched

Number:rdar://FB9794791 Date Originated:2021-12-03
Status:Open Resolved:
Product:iOS & iPadOS Product Version:
Classification:Incorrect/Unexpected Behavior Reproducible:Yes

NSDataDetector fails to detect content when:
- NSTextCheckingResult.CheckingType.phoneNumber is specified as one of the init types.
- One of the keywords (included below) is present in the string being searched.


let testString = "fly http://apple.com (800)692-7753"
let checkingTypes =
  | NSTextCheckingResult.CheckingType.phoneNumber.rawValue
guard let detector = try? NSDataDetector(types: checkingTypes) else { fatalError()  }
let matches = detector.numberOfMatches(
  in: testString,
  options: .reportCompletion,
  range: NSMakeRange(0, (testString as NSString).length))

EXPECTED RESULT: matches should be equal to 2

ACTUAL RESULT: matches is equal to 0

KEYWORDS (string.count < 7): air,dhl,flt,fly,tnt,ups,vol,voo,flug,flyg,ucus,usps,volo,zbor,colis,fedex,lento,rokov,suivi,track,utair,vuelo,aegean,etihad,flight,iberia,indigo,ontrac,paczka,pobeda,qantas,vlucht


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!