帮助我的正则表达式

Ric*_*nop 2 php regex

我正在尝试匹配看起来像这样的文件名:

45.pdf
Run Code Online (Sandbox Code Playgroud)

要么

45_2.pdf
Run Code Online (Sandbox Code Playgroud)

所以有一个正整数,一个可选的下划线,后跟另一个正整数,一个句号和一个代表一个扩展的字符串.

问题是,我的正则表达式也匹配45_.pdf,我不想这样做.

这里是:

$aRegexp = '/[0-9]+_?[0-9]*\\.[a-z]+/';

//$aString = '55.pdf';
//$aString = '55_5.pdf';
$aString = '55_.pdf';

var_dump(preg_match($aRegexp, $aString)); // should return int(0)
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 8

将下划线和第二个整数组合在一起,使用+而不是*第二个整数强制匹配,并且可选匹配整个组?,如下所示:

$aRegexp = '/[0-9]+(_[0-9]+)?\\.[a-z]+/';
Run Code Online (Sandbox Code Playgroud)