用于在下划线之间捕获的正则表达式

时间:2014-12-14 20:59:32

标签: javascript regex

我正在尝试找到一个正则表达式来描述第一个和最后一个下划线之间的文件名部分。下划线也可能出现在字符串的中间。我最终得到了我需要的JavaScript,但更喜欢纯正则表达式。

Sample file name                                 Desired Result
===============================================  =============================
12345_something goes here_54321                  something goes here
23456_sometimes_an_underscore there_endGoesHere  sometimes_an_underscore there

任何帮助将不胜感激。如果没有使用其他下划线,我可以解决这个问题,但是当有嵌入的下划线时我会卡住。

3 个答案:

答案 0 :(得分:2)

通常,您将定义一个由3个组组成的正则表达式。如果非下划线字符以下划线终止,则第一组将是任何数字。第二个是任意数量的任何字符,最后一个是下划线,后跟任意数量的非下划线字符,后跟行尾。然后,您只使用第二组。

答案 1 :(得分:0)

你可以不用regax这样做 - 像这样 -

$array = explode(" ", $your_string);

$ array [0]将拥有第一个字符串& $ array [1]将是第二个字符串

答案 2 :(得分:0)

这个正则表达式将满足您的需求; - )

^(?:[^_]*_)?(.*?)(?:_[^_]*)?$

Regular expression visualization

Debuggex Demo