1

冷融合的新手,正则表达式的新手......

我有一个文件目录,以“some”命名,后跟一个 13 位数字,后跟下划线、ID 和文件结尾,如下所示:

  some0000000000000_ID.jpg

ID 可以是任何字符串。

如何使用正则表达式获取 ID?我想我会寻找这样的东西,它捕获下划线和文件结束点之间的所有内容:

  _\A[A-Z]*[a-z]*[0-9]*$

但我真的无处可去。有人可以指出我正确的方向吗?

谢谢!

编辑:
我最终这样做了,这是hack-ish但效果很好:

<cfset cropFront = #ListRest(ReReplaceNoCase(name, ".png|.jpg", ""), "_")#>
<cfset cropFull = #ListFirst(ReReplaceNoCase( cropFront, "xxxxx", ""), "." )#> 

也许对其他人也有用!

4

2 回答 2

5
<cfdirectory name="images" directory="#path#" filter="some?????????????_ID.jpg">

过滤器不是正则表达式模式。它只知道?*通配符。

于 2012-04-22T21:26:31.960 回答
2

目前无法测试,但这就是想法......

<cfdirectory name="files" directory="path" action="list" />

<cfloop query="files">
    <cfset findinfo = refind("^some(\d{13})_", files.name, 0, true) />
    <cfif arraylen(findinfo.pos) eq 2>
        <cfset fileid = mid(files.name, findinfo.pos[2], findinfo.len[2]) />
        <!--- do something --->
    </cfif>
</cfloop>
于 2012-04-22T21:28:13.613 回答