2017-05-08 94 views
4

我有这样的文字找到的一切,但版本号

Microsoft (R) Windows Script Host Version 5.8 
Copyright (C) Microsoft Corporation. All rights reserved. 

58.0.3029 Copyright 2011 Google Inc. 

我想要的是找到,但

58.0.3029 

我用这一切来寻找模式

\d+(\.\d+\.\d+) 

所以我有找到所有的,但我可以做的最接近的是这

[\D+]+([\.\D+][\.\D+]) 

,但它不包括其他数字5.8和2011太,我不希望发生

你能帮我找到了正确的正则表达式?

我用http://www.regexpal.com/测试

我使用的是一个已经开发了C#

+0

是啊,那发现它,但我的目标是应有尽有,但这些数字(模式) –

+0

正则表达式是什么味道/语言? –

+0

@bobblebubble我将它与-math powershell一起使用,但C#也可以使用 –

回答

1

使用锚工具(在多行模式):

^\d[\d.]+ 
# match the start of the line 
# require one digit 
# followed by digit(s) and dot(s) 

而且随着''替换找到的匹配。见a demo on regex101.com

+0

这找到了这些数字,我的目标除了这些数字外,其他的都是找到的模式具体。我需要它来查找除此模式以外的所有内容*。*。* –

+1

@YA:只需找到数字并用'''替换它们。 – Jan

0

如果你想捕捉一切,但版本号,您可以使用以下命令:

([\s\S]*)\b\d+(?:\.\d+){2,}\s*([\s\S]*) 

Regex101 Example

0

要得到的一切,但版本号:

([\s\S]*)\b(\d+\.\d+\.\d+)\b([\s\S]*) 

替换:$1$3

Regex101 Demo

输出:

Microsoft (R) Windows Script Host Version 5.8 
Copyright (C) Microsoft Corporation. All rights reserved. 

Copyright 2011 Google Inc.