C语言 .so lib名称是否有更干净的正则表达式



我正在使用<regex.h>并试图为.so名称编写正则表达式,包括libmath.so.01等名称。

有一个更干净的正则表达式我可以使用吗?我得到的结果是:

"^lib[[:alnum:],[:punct:]]*[.]so[[:alnum:],[:punct:],.]*$"

不太清楚你想要捕获文件名的哪个部分,所以我做了多个版本:

(^lib.*?.so(?:$|.d+))

匹配以lib开头,以。so或。so结尾的字符串。后面跟着一个数字。并捕获文件名。

blibw*?.so(?:$|.d+)b

匹配包含libSomthing1的字符串。so或libsomething .so.01。并且不捕获任何东西