javascript - 正则表达式匹配大于 0 的数字,在括号内并且倒数第二个字符为字符串

标签 javascript regex

我不太确定如何在正则表达式中执行以下操作,你能帮助我吗?

我正在开发一个抓取页面的应用程序,结果我得到:

["(02335E)", "(02743M)", "(00899G)", "(02657J)",
 "(03330B)", "(03359M)", "(Macquarie)", "(00002J)", 
 "(01994M)", "(00401E)", "(Australia)", "(02517K)", 
 "(01545C)", "(03245K)", "(00168J)", "(03258E)", 
 "(00172B)", "(02318F)", "(02778M)", "(03350J)", 
 "(00682B)", "(03265F)", "(from 354 rows)"]

当字符串以任何字符(如 EM)结尾(括号之前)时,如何在 Javascript 正则表达式中仅匹配这些括号内大于零的数字、GJBF 等)?

例如,在字符串 (02335E) 中,我会得到 2335,在字符串 (00682B) 中,我会得到682

感谢您的帮助。

最佳答案

"(02335E)".match(/^\(0*([1-9]\d*)[A-Za-z_]*\)$/)[1];

说明:

  • ^:字符串的开头。
  • \(:文字左括号。
  • 0*:零个或多个零。
  • ([1-9]\d*):捕获 1-9,后跟零个或多个数字。
  • [A-Za-z_]*:零个或多个单词字符(减去任何数字)。
  • \):文字右括号。
  • $:字符串结尾。

关于javascript - 正则表达式匹配大于 0 的数字,在括号内并且倒数第二个字符为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38147934/

相关文章:

java - 正则表达式,使用 ".*"进行向后查找/先行查找

javascript - 使用 bootstrap 和 javascript 在文本框区域 onfocus 事件中添加图标

javascript - Google App 脚本中的 OnClose 或 OnExit 函数

javascript - "loose": true is not fixing Support for the experimental syntax 'classProperties' isn't currently enabled

javascript - 有没有办法在 highcharter wordcloud 中使用两个系列(或某种组)?

javascript - 从没有#的字符串中提取所有主题标签

javascript - 在我的情况下如何修复这个单元测试?

javascript - 如何找到至少两个不相邻的字母对

python - 正则表达式适用于 Sublime Text 搜索,但不适用于 Python 脚本

regex - 正则表达式匹配重复的字符串