import Foundation
let pattern = #"\b[^א-ת]{3,}\b"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
אכן עכשיו כבר אין איקסים, אבל זה מחזיר את הטקסט המקורי, לא מתורגם בכלל.
שלחתי לתירגום: "how are you אני עייף" וזה בדיוק מה שחזר. מה שאין כן מקודם, לפני השורה הזו, f לפחות תירגם לי את האנגלית, והעברית הפכה לאיקסים.
בקיצור זה באג של גוגל, ואין לזה פיתרון, עכשיו שוב בדקתי בהרחבה של כרום, גם שמה זה מחזיר הטקסט לא מתורגם.
הדבר היחיד שאולי אפשר לעשות זה לעבור על הטקסט מילה מילה, ולחתוך כל המילים בעברית, לשלוח לתירגום רק את האנגלית, ואז לצרף שוב את הכל. אבל השאילתא לוקחת זמן, ואם צריך לעשות שלשים שאילתות זה יקח המון זמן.
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression