不包括起始字符串的正则表达式

发布于 2025-01-06 20:14:11 字数 194 浏览 0 评论 0原文

我正在使用正则表达式,例如

<cfset a = ReFind("DESCRIBE\+[^>]*>", myResult.Header, 1, true) />

如果我需要此正则表达式在计算 LEN 和位置值时不应包含 DESCRIBE+ 。我该怎么写呢?

I am using a regular expression like

<cfset a = ReFind("DESCRIBE\+[^>]*>", myResult.Header, 1, true) />

If I need that this Regular Expression should not include DESCRIBE+ in calculating the LEN and Position values. How should I write it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贱贱哒 2025-01-13 20:14:11

DESCRIBE+ 是 9 个字符,你不能只加/减这个数字然后做数学吗?

DESCRIBE+ is 9 characters, cant you just add / subtract this number and do math.

请别遗忘我 2025-01-13 20:14:11
<cfset a = ReFind("DESCRIBE\+([^>]*>)", myResult.Header, 1, true) />

<cfif ArrayLen(a.pos) GT 1><!--- match found! --->
  <cfset afterDescribePosition = a.pos[2]>
  <cfset afterDescribeLength = a.len[2]>
</cfif>

ReFind(当第四个参数设置为 true 时,正如您所做的那样)将返回一个具有两个值(pos 和 len)的结构。其中每一个都是一个数组。如果您的正则表达式中没有任何捕获组(括号),那么这两个数组都只有一个值长 - 表示完整的正则表达式匹配。如果您定义了捕获组(正如我在示例中所做的那样),则每个数组中的后续值将与相应的捕获组相对应。在我的示例中,只有一个捕获组,因此每个数组的长度为 2(假设存在匹配项)。因此,第二位置处的值将与第一捕获组相关。

重新查找

<cfset a = ReFind("DESCRIBE\+([^>]*>)", myResult.Header, 1, true) />

<cfif ArrayLen(a.pos) GT 1><!--- match found! --->
  <cfset afterDescribePosition = a.pos[2]>
  <cfset afterDescribeLength = a.len[2]>
</cfif>

ReFind (when the fourth param is set to true, as you have done) will return a structure with two values (pos and len). Each of these is an array. If you don't have any capture groups ( parenthesis) within your regex, then both of these arrays will be just one value long - representing the full regex match. If you have capture groups defined (as I do in my example), then the subsequent values in each array will correspond with the respective capture group. In my example, there is only one capture group, so each array will be of length 2 (assuming there is a match). The values at the second position will therefore relate to the first capture group.

ReFind

筱武穆 2025-01-13 20:14:11

如果 ColdFusion 支持后视,则可以使用 (?<=DESCRIBE\+)[^>]*>

If ColdFusion supports look behind, then you can use (?<=DESCRIBE\+)[^>]*>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文