gpt4 book ai didi

javascript - 使用 javascript 正则表达式在大文本中查找首字母缩略词

转载 作者:行者123 更新时间:2023-12-01 01:18:53 26 4
gpt4 key购买 nike

我有一篇很大的文本,其中有一些缩写词。所有首字母缩略词均位于括号内且均为大写字母。括号之前的单词数始终与括号中的字母相同,且以相同的字母开头。但是,单词可能不是以大写字母开头。

例如:

bla bla 雷达截面 (RCS) bla bla...

bla bla 雷达截面(RCS)bla bla...

我需要列出所有缩写词。我应该如何开始?

最佳答案

这是一种可能性。它返回一个对象,其键是首字母缩略词,值是匹配的前面单词(不尝试将它们标准化为大写)。

const findAcronyms = (str) => {
const words = str.split(/\s+/)

return words.reduce((all, word, i) => {
const isCandidate = word.match(/\([A-Z]+\)/)
if (!isCandidate) {return all}
const letters = word.split('').slice(1, -1)
const acro = letters.join('')
if (i - letters.length < 0) {return all}
if (words.slice(i - letters.length, i)
.map(s => s[0]).join('')
.toLowerCase() !== acro.toLowerCase()) {
return all
}

return {
...all,
[acro]: words.slice(i - letters.length, i).join(' ')
}
}, {})
}

const str = 'bla bla radar cross section (RCS) but this one (IN) is not And This One (ATO) is'

console.log(findAcronyms(str)) //~>
// {
// RCS: "radar cross section",
// ATO: "And This One"
// }

请注意,“IN” 不包含在结果中,因为它与前面的文本不匹配。

如果您只想要实际的缩写词,而不想要它们代表什么,那么您可以将返回值修改为数组,或者您可以简单地对此结果运行 Object.keys

关于javascript - 使用 javascript 正则表达式在大文本中查找首字母缩略词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54448079/

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