
本教程详细介绍了如何利用JavaScript中的正则表达式从非结构化文本中高效提取特定模式的数据,例如查找并获取与货币单位“usd”相邻的数字。文章将深入解析正则表达式的构建原理、各组成部分的含义,并提供完整的代码示例,指导读者如何匹配不同形式的数字(整数、浮点数、正负数),以及如何对提取结果进行后处理,从而将字符串转换为可计算的数值。
在处理大量文本数据时,我们经常面临需要从非结构化字符串中提取特定信息的需求。例如,在一个句子中识别出某个货币单位(如“usd”)及其关联的数值。这种任务对于人工来说可能很简单,但对于程序而言,需要一种强大且灵活的模式匹配工具。正则表达式(Regular Expression, Regex)正是为此而生,它能够定义复杂的文本模式,并高效地在字符串中查找、匹配或替换这些模式。
假设我们有一个字符串,其中包含各种信息,我们需要从中找出所有形如“数字 usd”的片段,并确保这些数字可以是整数、浮点数,且支持正负号。例如,从“Today i will buy a set of buns for 4214 usd and eat it tomorrow. So tomorrow the budget would be total of -505.5 USD.”中,我们希望提取出“4214 usd”和“-505.5 USD”。
以下是数字可能出现的几种形式:
为了满足上述需求,我们可以构建一个正则表达式来精确匹配这些模式。核心的正则表达式是 /[-+]?\d+[,\.]?\d?\susd/gmi。下面我们来详细解析这个表达式的各个组成部分:
[-+]?:
\d+:
[,\.]?:
\d?:
\s:
usd:
修饰符(Flags):
在JavaScript中,我们可以使用 String.prototype.match() 方法配合正则表达式来提取匹配项。
const text = `Today i will buy a set of buns for 4214 usd and eat it tomorrow. So tomorrow the budget would be total of -505.5 USD. And another item for 1000,0 usd. Also a free item for 0 usd.`;
// 定义正则表达式
const regex = /[-+]?\d+[,\.]?\d?\susd/gmi;
// 执行匹配
const matches = text.match(regex);
console.log('所有匹配项:', matches);
// 预期输出: ["4214 usd", "-505.5 USD", "1000,0 usd", "0 usd"]
// 对匹配结果进行后处理
if (matches) {
  console.log('\n处理后的数值:');
  matches.forEach(match => {
    // 移除货币单位,并将逗号替换为点号,以便转换为标准浮点数
    const numString = match.replace(/\susd/i, '').replace(',', '.');
    const numberValue = Number(numString);
    console.log(numberValue);
  });
}
/*
预期输出:
4214
-505.5
1000
0
*/通过本教程,您应该已经掌握了如何使用正则表达式从文本中提取特定模式的数据,特别是数字和其关联的特定单词。正则表达式是文本处理领域中一个不可或缺的工具,熟练运用它将极大地提高您处理字符串数据的效率和准确性。
以上就是如何使用正则表达式从文本中提取特定单词及相邻数字的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号