Regular Expression Only Match If String Ends with Target

Regular Expression Only Match If String Ends with Target

I need a regular expression that will only match to the String if it ends with the target that I am looking for. I need to locate a file with a specific extension, problem is this extension also comes in other files. For example I have two files named

B82177_2014-07-08T141507758Z.ccf

and

B82177_2014-07-08T141507758Z.ccf.done

I only want to grab the first of these and my pattern is:

.*\.ccf

but this grabs both.

Any suggestions appreciated, I am a newbie to regular expressions.

3 Answers

Use an end anchor ($):

.*\.ccf$

This will match any string that ends with .ccf, or in multi-line mode, any line that ends with .ccf.

2

$ is used to match the end of the string. and can be used like

"string"$

like

xyz$

if you want to end with xzy

VanilaJS function base example

function isValidUrl(x){
  let expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
  let regex = new RegExp(expression);
  
  return x.match(regex) ? true : false
  
}

console.log( isValidUrl(') ) // true

console.log( isValidUrl('nothing') ) // false

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.