正则表达式获取特定的数字集

时间:2015-11-11 15:12:49

标签: regex vb.net

我有一个文件路径,我希望得到一组数字。这是我的字符串:

_uploads/_documents/1254_test_doc.pdf

我想只从该字符串中获取数字集1254。我知道您可以使用正则表达式来获取\d的数字。

但是,我还要考虑可能看起来像这样的字符串:

_uploads/_documents/1254_test_doc1.pdf

我仍在努力改善使用正则表达式而且这个没有点击。有人能帮我找到正确的正则表达式吗?

2 个答案:

答案 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; } } 之后捕获一组数字。

Demo