在最后一个点正则表达式

时间:2016-08-26 18:36:23

标签: regex text tcl

我需要一个正则表达式,它匹配字符串中最后一个点之前的所有内容。例如,我有这样的文字: if_blk4.if_blk1.if_blk1 我想得到if_blk4.if_blk1

谢谢!

2 个答案:

答案 0 :(得分:5)

要匹配最后一个点的所有内容,但不包括最后一个点,请使用前瞻:

.*(?=\.)

答案 1 :(得分:1)

怎么样

regexp {.*(?=\.[^.]*$)} $text match

即。匹配任何导致(不匹配)点序列的字符和零点或多点不是点的字符,后跟字符串的结尾。

(正则表达式{.*(?=\.)}是等价的,因为正则表达式匹配不需要锚定。)

或(更快)

file rootname $text

文档: fileregexpSyntax of Tcl regular expressions