Regex(Java) - 需要帮助制定特定的模式字符串

时间:2012-02-23 19:21:11

标签: java regex

我对正则表达式非常糟糕,所以希望你们和gals能够帮助我。我有一个名为str的字符串,我想确保它是以下形式:它不是任何东西,或者它是一个数字(可以是任意数量的数字),或者它是任意数量的数字(每个数字可以是任意数字的长度,如单个数字的情况,用〜字符分隔。

因此,例如,如果str是以下任何一种,它将采用正确的形式:“”,“0”,“123”,“13~55”,“123~4~121”,“1 〜23〜43〜4" 。

如果形成一个正则表达式模式字符串,如果它有效,我将如何形成一个正则表达式?

3 个答案:

答案 0 :(得分:7)

不能简单:

^(\d+~?)*$

在此处查看:[{3}}

答案 1 :(得分:3)

正确也可能是:

^(\d+(~\d)*)*$

与此前的约瑟夫·西尔伯答案的区别在于,这个不允许以〜字符结束的行。

答案 2 :(得分:0)

此?

^([0-9]+|(([0-9]+~)*[0-9]+))?$