gpt4 book ai didi

regex - 我如何找到用 NSRegularExpression 写的泰语单词

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:05 25 4
gpt4 key购买 nike

我有一个用泰语写的词--> ความรัก我如何使用 NSRegularExpression 来匹配这个词?我尝试使用确切的词,但它不起作用。

它甚至不能在 regex101.com 这样的网站上运行

这是我的代码(swift 版本。但无论是 swift 还是 obj 的答案都值得赞赏)。以下代码在我的 playground 文件中。我总是假的,永远不会真。

let labelString = "ความรัก"
let regex = try NSRegularExpression(pattern: "ความรัก", options: [])
let rangeOfFirstMatch = regex.rangeOfFirstMatchInString(labelString, options:.ReportProgress, range:NSRange(location: 0, length: labelString.characters.count))
if (!NSEqualRanges(rangeOfFirstMatch, NSRange(location: NSNotFound, length: 0))) {
print(true)
} else {
print(false)
}

但是,如果我用“man”一词替换文本。我总是对的

最佳答案

缺陷在于:

NSRange(location: 0, length: labelString.characters.count)

NSRegularExpression 使用基于 UTF-16 的计数和偏移量,因此您需要传递一个包含基于 UTF-16 的位置和长度的范围。

尝试将包含 NSRange 的行更改为:

let rangeOfFirstMatch = regex.rangeOfFirstMatchInString(labelString,
options:.ReportProgress,
range:NSRange(location: 0, length: labelString.utf16.count))

我更喜欢这种表示法(功能等效):

let rangeOfFirstMatch = regex.rangeOfFirstMatchInString(labelString,
options:.ReportProgress,
range:NSRange(0..<labelString.utf16.count))

(我不确定,但你真的需要 .ReportProgress 吗?)

关于regex - 我如何找到用 NSRegularExpression 写的泰语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com