名称的正则表达式

时间:2019-03-27 09:13:59

标签: java regex

我需要使用以下模式为名称构建一个正则表达式,所以 John D.E。将通过正则表达式测试。 基本上我想要的是:

  1. N个字符(a-zA-Z)排在首位

  2. 然后只有一个空格

  3. 恰好是一个字符(a-zA-Z)

  4. 正好一个点

  5. 恰好是一个字符(a-zA-Z)

  6. 正好一个点

我编写了此正则表达式^([a-zA-Z]*)+( {1})+([a-zA-Z]{1})+(\.)+([a-zA-Z]{1})+(\.),但它似乎无法正常运行(例如,该表达式仍允许n个空格)。如何限制呢? {1}不起作用。

1 个答案:

答案 0 :(得分:2)

尝试一下:

^([a-zA-Z])+([ ]{1})([a-zA-Z]{1})([.])([a-zA-Z]{1})([.])

我已经将空格和点纳入类([])中。如果您不使用点进行此操作,则表示任何字符。 Alo加号是多余的,它们表示多个字符。

P.S .: @ f1sh正确地注意到,拥有{1}不会改变任何事情,因此缩写形式应该是:

^([a-zA-Z])+([ ])([a-zA-Z])([.])([a-zA-Z])([.])