我正在尝试在诸如此类的某些字符串中找到一个数字对的最后一个匹配项:
123f64swfW68F43
123f64swfW6843
123f64swfW6843sad
123f64swfW6843sa3d
在所有这些对象中,匹配结果应为43。我尽力而为:
/(\d{2})(?!.*\d)/
但这仅适用于前三个字符串。
请注意,我想在一个正则表达式中执行此操作,而无需编写任何其他脚本。
感谢您的帮助!
答案 0 :(得分:1)
您可以使用
\d{2}(?!\d|.*\d{2})
请参见regex demo。它的基本含义是“匹配两个连续的数字,这些数字不会立即跟在一个数字后面,也不会跟在这两个数字右边的任何两个连续的数字后面”。
详细信息
\d{2}
-两位数字(?!\d|.*\d{2})
-除后跟换行符外,后面没有数字或后面没有两位的任何0+字符。或者,您可以使用
/.*(\d{2})/
并获取组1的值。请参见regex demo。此正则表达式的意思是“将所有文本匹配到最后两位,并在单独的内存缓冲区中捕获两位”。
详细信息
.*
-除换行符以外的任意0+个字符,并且尽可能多(\d{2})
-捕获组1:两位数字