我有一个文件路径,我希望得到一组数字。这是我的字符串:
_uploads/_documents/1254_test_doc.pdf
我想只从该字符串中获取数字集1254
。我知道您可以使用正则表达式来获取\d
的数字。
但是,我还要考虑可能看起来像这样的字符串:
_uploads/_documents/1254_test_doc1.pdf
我仍在努力改善使用正则表达式而且这个没有点击。有人能帮我找到正确的正则表达式吗?
答案 0 :(得分:1)
您可以使用模式(?<=/)\d+(?!.*/)
,如下所示:
Dim input As String = "_uploads/_documents/1254_test_doc1.pdf"
Dim m As Match = Regex.Match(input, "(?<=/)\d+(?!.*/)")
If m.Success Then
Console.WriteLine(m.Value)
End If
这里是模式的含义:
(?<=/)
- 一个后瞻性的断言,以确保该号码必须以正斜杠开头\d+
- 包含一个或多个数字的数字。这是匹配的部分。(?!.*/)
- 一个负前瞻性断言,以确保该数字没有前后任何地方的正斜杠。此断言允许数字存在于目录名称中而不会造成干扰。答案 1 :(得分:0)
这应该适合你:
/
它在最后server {
listen 80;
if ( $http_x_forwarded_proto = "http" ) {
set $redir please_redir;
}
location ~ ^/assets/|favicon.ico {
set $redir dont_redir;
root /home/deploy/www/public;
gzip_static on;
expires max;
add_header Cache-Control public;
}
if ( $redir = please_redir ) {
return 301 https://$http_host$request_uri;
}
location / {
proxy_pass http://127.0.0.1:9292/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
之后捕获一组数字。