作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一篇很大的文本,其中有一些缩写词。所有首字母缩略词均位于括号内且均为大写字母。括号之前的单词数始终与括号中的字母相同,且以相同的字母开头。但是,单词可能不是以大写字母开头。
例如:
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/
直接问题:对于一个类对象的三个(或更多)几乎相同的拷贝,我怎样才能最好(或最有效)地存储它们之间的差异? 背景:我有一个需要一组参数的算法: struct params { std::strin
我是一名优秀的程序员,十分优秀!