guruguru
guruguru

Reputation: 73

Regex to match all occurrences that begin with n characters in sequence

I'm not sure if it's even possible for a regular expression to do this. Let's say I have a list of the following strings:

ATJFH
ABHCNEK
BKDFJEE
NCK
ABH
ABHCNE
KDJEWRT
ABHCN
EGTI

And I want to match all strings that begin with any number of characters for the following string: ABHCNEK

The matches would be:

ABH
ABHCN
ABHCNE
ABHCNEK

I tried things like ^[A][B][H][C][N][E][K] and ^A[B[H[C[N[E[K]]]]]], but I can't seem to get it to work...

Can this be done in regex? If so, what would it be?

Upvotes: 3

Views: 152

Answers (3)

vks
vks

Reputation: 67968

The simplest can be

^(?:ABHCNEK|ABHCNE|ABHCN|ABHC|ABH|AB|A)$

See demo.

https://regex101.com/r/eB8xU8/6

Upvotes: 1

sideroxylon
sideroxylon

Reputation: 4416

You haven't said how you want to use it, but one option doesn't require regex. Loop through the various strings and check for a match within your test string:

var strings = ['ATJFH', 'ABHCNEK', 'BKDFJEE', 'NCK', 'ABH', 'ABHCNE', 'KDJEWRT', 'ABHCN', 'EGTI'];

var test = 'ABHCNEK';

for (var i = 0; i < strings.length; i++) {
  if (test.match(strings[i])) {
    console.log(strings[i]);
  }
}

This returns:

ABHCNEK ABH ABHCNE ABHCN

Upvotes: 0

Kirill Polishchuk
Kirill Polishchuk

Reputation: 56162

Use this regular expression:

^[ABHCNEK]+$

Upvotes: 0

Related Questions