无法找到正确的正则表达式

时间:2013-05-20 22:44:14

标签: java regex

我正在尝试使用符合以下模式的正则表达式:

_Something6

当一切都必须以下划线开头,后面必须跟一个大写字母,然后是任何字母或数字,但不再是下划线或任何特殊字符。

我有这个,但正如你所看到的,我不是一个正则表达式的天才

^/_[A-Z][a-z+][0-9]

我很感激任何帮助。

4 个答案:

答案 0 :(得分:3)

这应该是:^ _ [A-Z] [a-z] + [0-9]

正如docs所说:

  • ^行首
  • _下划线
  • [A-Z]任何大写字母A到Z(只有一个)
  • [a-z]+任何小写字母形式为a至z(至少一次)
  • [0-9]数字

并确保它以$后缀(带有数字)后缀:

^_[A-Z][a-z]+[0-9]$

答案 1 :(得分:1)

您可以尝试:^_[A-Z][a-z0-9]+。那是从:

开始的
^_ : match the beginning of the string
[A-Z] : followed by an uppercase letter
[a-z0-9]+ : followed by any lowercase letters or numerics

答案 2 :(得分:1)

试试这个:

^_[A-Z][\w&&[^_]]+$

Regex UI

答案 3 :(得分:0)

这样的事情应该有效:

^_[A-Z][A-Za-z\d]+$

[A-Za-z]如果对您更有意义,也可能是[A-Z]|[a-z]\d[0-9]的假名 - 再次使用哪个更清楚。

你的例子有点不清楚,所以有几个例子:

String a = "_Som3th1ng6";    // This matches.
String b = "_Some_thing";    // This DOES NOT match.

如果你只想匹配END与数字的字符串,这样的东西就可以了:

^_[A-Z][A-Za-z]+\d+$

^$匹配字符串的开头和结尾,例如:

String a = "_Something6";     // This matches.
String b = " _Something6 ";   // This DOES NOT match.

如果这不是您想要的,请省略这两个字符。