1

由于我不太擅长正则表达式,我如何匹配字符串中的某些条件,StaticString_1number:1number:more than 1number.

例子:

string_3:0:12344555 - Match 
string_s:0:12344555 - No match 
string_3:s:12344555 - No match 
string_3:0:123s4555 - No match

谢谢。

4

5 回答 5

2

这个正则表达式可以解决你的问题:

^[a-zA-Z]+_[\d]{1}:[\d]{1}:[\d]+$

您可以查看此链接进行验证:http ://regexr.com?34uj5

于 2013-05-21T09:49:19.737 回答
1

这应该适合您的需求:

^[^_]+_\d:\d:\d+$

演示

于 2013-05-21T09:37:49.973 回答
1

如果我正确理解了您的模式StaticString_1number:1number:more than 1number,则与此类字符串匹配的正则表达式可能如下所示:

'^[a-zA-Z]+_[0-9]:[0-9]:[0-9]+$'

或者如果您的环境支持字符类:

'^\w+_\d:\d:\d+$'
于 2013-05-21T09:42:02.007 回答
0

如果初始字符串只能有字符 az 那么以下应该有效:

[a-z A-Z]+_\d:\d:\d+

这将匹配任意数量的字母,直到下划线,然后在冒号前后查找单个数字,在第二个冒号之后查找多个数字。

但你真的应该尝试一下你自己。如果在 python 中你可以尝试重试或在 javascript regexpal中尝试你的正则表达式模式。

于 2013-05-21T09:39:22.137 回答
0

这可能会有所帮助:^[a-zA-Z]*_[0-9]:[0-9]:[0-9]*$

于 2013-05-21T09:47:20.480 回答