Knightfox
Knightfox

Reputation: 103

Regex to negate certain characterss

I need some help with regex to extract specific characters from a given string. Following is the string and required string to extract.

21.4R3.13-EVO -- Required 21.4R3-EVO 
24.1R13.13-EVO -- Required 24.1R13-EVO 
21.4R2-S1-20190223000107.0-EVO  -- Required 21.4R2-EVO 
19.4R11-S1-20190223000107.0-EVO  -- Required 19.4R11-EVO 

I tried following and its matching first half but I couldn't negate the middle section.

[0-9]+.[0-9]+[A-Z][0-9]+

Matching
21.4R3

Upvotes: 1

Views: 37

Answers (1)

anubhava
anubhava

Reputation: 785156

You can use this regex for search:

^(\d+\.[a-zA-Z\d]+)[-.].*(-[a-zA-Z]+)$

and replace with $1$2.

RegEx Demo

RegEx Breakup:

  • ^: Start
  • (\d+\.[a-zA-Z\d]+): Match 1+ digits then a dot followed by 1+ alpha numeric character. Capture this in group #1
  • [-.].*:
  • (-[a-zA-Z]+): Match last - followed by 1+ letters and capture in group #2
  • $: End

Upvotes: 1

Related Questions