-2

我正在寻找一个验证以下字符串的正则表达式c3a0acfb-cdce-4a5c-a089-43c09578fc0f,它总是有小写字母、数字和-,我知道 [0-9a-z] 验证字母和数字,但我需要说这个字符-可以出现在任何地方。

任何人都可以帮助我吗?

谢谢。

4

5 回答 5

3

regex :

([a-z0-9\-]+)

The above will allow alphabets digits and hyphen.

于 2013-07-03T13:37:09.070 回答
2

假设这是一个 GUID,使用这个:

"{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}"
于 2013-07-03T13:28:43.023 回答
1
([0-9a-z]*)\-([0-9a-z]*)\-([0-9a-z]*)

This regexp should do it, in java you might need to add an extra backslash before -

Assuming that it is a certain number of -

In the future you can experiment at: http://gskinner.com/RegExr/

于 2013-07-03T13:35:56.943 回答
0

这太简单了!!你真的试过什么吗??如果要匹配包含小写字母、数字和连字符的字符串,可以使用:

[a-z0-9-] 

如果您严格要匹配上述模式,则:

 (([a-z0-9]+)(-)?)+ 

应该管用。它表示任何字母数字后跟一个或零连字符。

我不确定对于连字符,我们是否需要直接使用 /- 而不是 - :D。所以至少自己做这件事,让我也知道:D。

[a-z0-9-]+ 也适用于您,但它也接受以下类型的字符串:

 adcacf--sadcac-das-----

甚至这也将被接受:

------------- (strings of hyphen)

所以,如果你知道你不会得到这些类型的字符串,那么你可以按照 PVR 的指示使用 [a-z0-9-]+。

于 2013-07-03T13:39:25.883 回答
0

Try [0-9a-z\\-]. (Warning: This doesn't validate the length of the string.)

于 2013-07-03T13:35:53.243 回答