大家早上好,
这是我的问题:我的文件名为test1.pdf,我想检查.pdf之前的最后一个字符是否为数字。如果是,我想提取它。 以下正则表达式工作:
(\D*)(\d?)(\.pdf)
我得到了3个元素:test / 1 / .pdf
但现在我的文件名为test1test1.pdf。所以我试试这个正则表达式;
(\w*)(\d?)(\.pdf)
我的正则表达式不再起作用,因为我得到:test1test1 / .pdf而不是test1test / 1 / .pdf。因此.pdf之前的最后一位数字包含在(\ w *)
中这个正则表达式将解决这个问题:
(\w*)(\d{1})(\.pdf)
但如果在.pdf之前没有数字,它就无法工作。 例如,它不匹配test1test.pdf。
我知道一些可以解决我的问题的正则表达式,但我觉得它们不是很优雅。有没有办法强制数字匹配\ d而不是\ w或点,或者有没有办法指定"括号结束"喜欢"字符串结束"与$?
感谢您的帮助或提示 (顺便说一句,我使用PHP和preg_match()函数)