Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

317
Views
Regex to extract each alphanumeric pattern

I have a string like following

19990101 - John DoeLorem ipsum dolor sit amet 19990102 - Elton Johnconsectetur adipiscing elit

How can I write a regex that would give me these two separate strings

19990101 - John DoeLorem ipsum dolor sit amet

19990102 - Elton Johnconsectetur adipiscing elit

The regex I wrote works up to this

/\d+ -/gm

Image

But I don't know how can I include the alphabets there as well

Image2

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

You can use

const text = '19990101 - John DoeLorem ipsum dolor sit amet 19990102 - Elton Johnconsectetur adipiscing elit';
console.log(text.match(/\d+\s+-[A-Za-z0-9\s]*[A-Za-z]/g))
console.log(text.split(/(?!^)\s+(?=\d+\s+-)/))

The text.match(/\d+\s+-[A-Za-z0-9\s]*[A-Za-z]/g) approach is extracting the alphanumeric/whitespace chars after \d+\s+- pattern. Details:

  • \d+ - one or more digits
  • \s+ - one or more whitespaces
  • - - a hyphen
  • [A-Za-z0-9\s]* - zero or more alphanumeric or whitespace chars
  • [A-Za-z] - a letter

The text.split(/(?!^)\s+(?=\d+\s+-)/) splitting approach breaks the string with one or more whitespaces before one or more digits + one or more whitespaces + -:

  • (?!^) - not at the start of string
  • \s+ - one or more whitespaces
  • (?=\d+\s+-) - a positive lookahead that matches a location that is immediately followed with one or more digits + one or more whitespaces + -.
about 4 years ago · Juan Pablo Isaza Report

0

For the OP's use case a regex based split like with ... str.split(/(?<=\w)\s+(?=\d)/) ... already should do it.

The regex uses lookarounds, here trying to match any whitespace (sequence)/\s+ which is both led/(?<= ... ) by a word/\w and is followed/(?= ... ) by a digit/\d character.

console.log(
  '19990101 - John DoeLorem ipsum dolor sit amet 19990102 - Elton Johnconsectetur adipiscing elit 19990101 - John DoeLorem ipsum dolor sit amet 19990102 - Elton Johnconsectetur adipiscing elit'
    .split(/(?<=\w)\s+(?=\d)/)
);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!