M guy
M guy

Reputation: 409

Regex Match special characters between two characters

So I have the following requirements:

  1. Any alphabets between a-z or A-Z
  2. The first character must be alphabet
  3. No numeric characters are allowed
  4. No special characters are allowed except these three: .-‘
  5. And they can only be in between letters

So far, to solve this I have got the 2 following regex:

^[a-zA-Z][a-zA-Z ]*$

This is to solve points 1,2,3

(?<=[a-zA-Z])[.\-'](?=[a-zA-Z])

and this is to solve points 4,5

Test cases can be words like:

However I am unable to combine them. I have tried and I do not get the expected outcome. Any ideas?

Upvotes: 2

Views: 584

Answers (1)

Wiktor Stribiżew
Wiktor Stribiżew

Reputation: 626816

You may use

^[a-zA-Z]+(?:[-.'][a-zA-Z]+)*$

See the regex demo

Details

  • ^ - start of string
  • [a-zA-Z]+ - 1+ ASCII letters
  • (?:[-.'][a-zA-Z]+)* - 0 or more occurrences of
    • [-.'] - a hyphen, dot or single quote
    • [a-zA-Z]+ - 1+ ASCII letters
  • $ - end of string

Upvotes: 1

Related Questions