寻找匹配数字前后的正则表达式
Looking for regex to match before and after a number
给定字符串
170905-CBM-238.pdf
我正在尝试匹配 170905-CBM
和 .pdf
,这样我就可以 replace/remove 它们并剩下 238
。
我已经搜索并找到了可行但无法将它们组合在一起的部分。
This-> (.*-)
将匹配第一部分并且
This-> (.[^/.]+$)
将匹配上一节
但我不知道如何将它们联系在一起,以便它匹配之前的所有内容,包括第二个破折号和之后的所有内容,包括句点(或扩展名)但不匹配之间的数字。
帮助 :) 并感谢您的考虑。
我不知道 ninetex 正则表达式,但是 sed
类型的正则表达式:
$ echo "170905-CBM-238.pdf" | sed -E 's/^.*-([0-9]*)\.[^.]*$//'
238
同样适用于 Perl:
$ echo "170905-CBM-238.pdf" | perl -pe 's/^.*-([0-9]*)\.[^.]*$//'
238
在 Nintex 中有几个选项可以实现您的需要。
如果使用Extract操作,使用(?<=^.*-)\d+(?=\.[^.]*$)
作为Pattern.
参见regex demo。
详情
(?<=^.*-)
- 正后视要求紧接在当前位置的左侧,字符串的开头 (^
),然后是除 LF 之外的任何 0+ 个字符,尽可能多到最后一次出现的 -
和后续的子模式
\d+
- 1 个或多个数字
(?=\.[^.]*$)
- 一个积极的前瞻要求,紧接在当前位置的右侧,存在 .
和 .
以外的 0+ 个字符,直到结束字符串。
如果使用替换文本操作,请使用
模式:^.*-([0-9]+)\.[^.]+$
替换文字:</code></p>
<p>参见 <a href="http://regexstorm.net/tester?p=%5E.*-%28%5B0-9%5D%2B%29%5C.%5B%5E.%5D%2B%24&i=170905-CBM-238.pdf&r=%241" rel="nofollow noreferrer">another regex demo</a>(<em>上下文</em> 选项卡显示替换结果)。</p>
<p><strong>详情</strong></p>
<ul>
<li><code>^
- 字符串锚点的开始
.*
- 除了 LF 之外的任何 0+ 个字符,直到后续子模式的最后一次出现...
-
- 一个连字符
([0-9]+)
- 第 1 组:一个或多个 ASCII 数字
\.
- 文字 .
[^.]+
- .
以外的 1 个或多个字符
$
- 字符串结尾。
替换
引用存储在组 1 中的值。
给定字符串
170905-CBM-238.pdf
我正在尝试匹配 170905-CBM
和 .pdf
,这样我就可以 replace/remove 它们并剩下 238
。
我已经搜索并找到了可行但无法将它们组合在一起的部分。
This-> (.*-)
将匹配第一部分并且
This-> (.[^/.]+$)
将匹配上一节
但我不知道如何将它们联系在一起,以便它匹配之前的所有内容,包括第二个破折号和之后的所有内容,包括句点(或扩展名)但不匹配之间的数字。
帮助 :) 并感谢您的考虑。
我不知道 ninetex 正则表达式,但是 sed
类型的正则表达式:
$ echo "170905-CBM-238.pdf" | sed -E 's/^.*-([0-9]*)\.[^.]*$//'
238
同样适用于 Perl:
$ echo "170905-CBM-238.pdf" | perl -pe 's/^.*-([0-9]*)\.[^.]*$//'
238
在 Nintex 中有几个选项可以实现您的需要。
如果使用Extract操作,使用(?<=^.*-)\d+(?=\.[^.]*$)
作为Pattern.
参见regex demo。
详情
(?<=^.*-)
- 正后视要求紧接在当前位置的左侧,字符串的开头 (^
),然后是除 LF 之外的任何 0+ 个字符,尽可能多到最后一次出现的-
和后续的子模式\d+
- 1 个或多个数字(?=\.[^.]*$)
- 一个积极的前瞻要求,紧接在当前位置的右侧,存在.
和.
以外的 0+ 个字符,直到结束字符串。
如果使用替换文本操作,请使用
模式:^.*-([0-9]+)\.[^.]+$
替换文字:</code></p>
<p>参见 <a href="http://regexstorm.net/tester?p=%5E.*-%28%5B0-9%5D%2B%29%5C.%5B%5E.%5D%2B%24&i=170905-CBM-238.pdf&r=%241" rel="nofollow noreferrer">another regex demo</a>(<em>上下文</em> 选项卡显示替换结果)。</p>
<p><strong>详情</strong></p>
<ul>
<li><code>^
- 字符串锚点的开始
.*
- 除了 LF 之外的任何 0+ 个字符,直到后续子模式的最后一次出现...-
- 一个连字符([0-9]+)
- 第 1 组:一个或多个 ASCII 数字\.
- 文字 .
[^.]+
- .
$
- 字符串结尾。替换 引用存储在组 1 中的值。