简单正则表达式:匹配所有内容直到最后一个点

big*_*owg 10 regex

只想匹配每个角色,但不包括最后一个时期

 dog.jpg     -> dog
 abc123.jpg.jpg -> abc123.jpg
Run Code Online (Sandbox Code Playgroud)

我试过了

(.+?)\.[^\.]+$
Run Code Online (Sandbox Code Playgroud)

Qui*_*inn 20

使用lookahead断言最后一个点字符:

.*(?=\.)
Run Code Online (Sandbox Code Playgroud)

现场演示.

  • 这将始终在同一位置匹配两次。 (2认同)

roc*_*987 11

这样就可以了

(.*)\.
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

第一个捕获的组包含名称.您可以按照您的语言$1\1按照您的语言访问它


agh*_*ast 7

默认情况下,正则表达式是贪婪的.这意味着当正则表达式模式能够匹配更多字符时,它将匹配更多字符.

在你的情况下,这是一件好事.你需要做的就是匹配字符,然后是一个点:

.*\.
Run Code Online (Sandbox Code Playgroud)

那是,

.   # Match "any" character
*   # Do the previous thing (.) zero OR MORE times (any number of times)
\   # Escape the next character - treat it as a plain old character
.   # Escaped, just means "a dot".
Run Code Online (Sandbox Code Playgroud)

所以:默认情况下贪婪,任何角色都可以匹配任何角色(因为贪婪),然后是文字点.