gpt4 book ai didi

objective-c - 匹配字符串中短语的第一个单词

转载 作者:行者123 更新时间:2023-12-03 17:45:10 26 4
gpt4 key购买 nike

我正在使用 Mac 版 Google 工具箱(在 Cocoa/Objective-C 中)应用程序中的 GTMRegex 类:

http://code.google.com/p/google-toolbox-for-mac/

我需要匹配并替换字符串中的 3 个单词短语。我知道该短语的第二个和第三个单词,但第一个单词不知道。

所以,如果我有:

lorem BIFF BAM BOO ipsem

lorem BEEP BAM BOO ipsem

我会观看匹配(BEEP BAM BOO)和(BIFF BAM BOO)。然后我想将它们包装在粗体 HTML 标签中。

这是我所拥有的:

GTMRegex *requiredHeroRegex = [GTMRegex regexWithPattern:@"(\\([A-Z][A-Z0-9]*)\\b Hero Required)" options:kGTMRegexOptionSupressNewlineSupport|kGTMRegexOptionIgnoreCase];
out = [requiredHeroRegex stringByReplacingMatchesInString:out withReplacement:@"<b>\\1</b>"];

但是,这不起作用。基本上,当我不知道第一个单词时,我不知道如何匹配它。

有人知道正则表达式可以做到这一点吗?

更新:

GTRegEx 使用 POSIX 1003.2 正则表达式,因此解决方案是:

GTMRegex *requiredHeroRegex = [GTMRegex regexWithPattern:@"([[:<:]][A-Z][A-Z0-9]*[[:>:]])( Hero Required)" options:kGTMRegexOptionSupressNewlineSupport|kGTMRegexOptionIgnoreCase];
out = [requiredHeroRegex stringByReplacingMatchesInString:out withReplacement:@"<b>\\1\\2</b>"];

请注意单词边界的疯狂语法。

更新 2:这是 JavaScript 版本:

/(([A-Za-z]*?|[A-Za-z]*? [A-Za-z]*?)( Hero Required))/gm

最佳答案

您应该使用“.*?英雄必需”,但是,如果它是句子的开头,则不会捕获短语。对于这两种情况,请使用“(.*?需要英雄|^.*?需要英雄)”

关于objective-c - 匹配字符串中短语的第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091851/

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