# Regular Expressions Help

• Feb 22, 2010, 22:13
viper2843
Regular Expressions Help
I am trying to create a regular expression to help me validate a particular string that users will be passing into my application. I thought I had it figured out until I found a few test cases that my expression gave a false positive for. Here are the details:

1. The first six characters will be letters or spaces.
2. The first character must be a letter.
3. If the first six characters are not all letters, then the rest of the six are padded with spaces.

Here are some examples of valid strings:

Good:
Code:

```ABCDEF0123 GHIJK 0123 LMNO  0123 PQR  0123 ST    0123 U    0123```
So I quickly whipped up the below expression to validate these strings:

Code:

`([a-zA-Z]){1}([a-zA-Z]|\s){5}\d{4}`
The problem is this can create false positives because I am not properly meeting requirement number 3. Here are some strings that cause false positives:

Code:

```ABCD F0123 GHI JL0123 MN PQR0123 S UVWX0123```
I'm not the best at regular expressions so I am kind of stumped as to how to proceed. How do I check the first six characters so that they are letters until a space is found and then it is padded until it reaches 6 characters. Thank you in advance for your help.
• Feb 22, 2010, 22:46
felgall
I can't think of a way to directly check for letters with trailing spaces to pad out to the specific length without checking each combination separately such as

Code:

`^([a-zA-Z]    )|([a-zA-Z]{2}    )|([a-zA-Z]{3}  )|(a-zA-Z){4}  )|([a-zA-Z){5} )|([a-zA-Z]{6})\d{4}\$`
Alternatively testing two expressions separately would be shorter.

Code:

```^[a-zA-Z]{1,6} {0,5}\d{4}\$ ^[a-zA-Z ]{6}\d{4}\$```
the first checks the spaces are after the letters while the second checks the total length.
• Feb 23, 2010, 20:01
viper2843
Thank you for your reply, felgall. The example you gave was perfect. I was able to finish my validation code today. Thank you very much for your help! :)