我不太确定如何在正则表达式中执行以下操作,你能帮助我吗?
我正在开发一个抓取页面的应用程序,结果我得到:
["(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)"]
当字符串以任何字符(如 E
、M
)结尾(括号之前)时,如何在 Javascript 正则表达式中仅匹配这些括号内大于零的数字、G
、J
、B
、F
等)?
例如,在字符串 (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/