正则表达式 - 在最后一次出现之前找到字符串

时间:2014-09-18 11:47:01

标签: javascript jquery regex

我有一个像这样生成的字符串

"$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected"

我想利用javascript正则表达式在" [letter l] [digit]"的最后一次出现之前找出字符串。所以我的结果应该是

$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas

因为我对正则表达非常新,所以任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

使用前瞻来匹配$l上次出现之后所有字符,然后是数字。

> "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected".match(/.+(?=\$l\d)/g);
[ '$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas' ]

如果\$之前包含任何字符,请放置一个点而不是l<digit>

> "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected".match(/.+(?=.l\d)/g);
[ '$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas' ]

答案 1 :(得分:0)

试试:

var input = "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected";
var output = input.match(/^(.*)\$l\d/)[1];

如果未找到匹配项,则output将为undefined