1

I need your help with a RegEx in PHP

I have something like: vacation.jpg and I am looking for a RegEx which extracts me only the 'vacation' of the filename. Can someone help me?

2
  • possible duplicate of PHP Get File Name Without File Extension Commented Jan 27, 2012 at 13:20
  • You do not need regular expression for this - PHP has built-in features that enable you to do this without regular expressions. Commented Jan 27, 2012 at 13:22

5 Answers 5

6

Don't use a regex for this - use basename:

$fileName = basename($fullname, ".jpg");
Sign up to request clarification or add additional context in comments.

Comments

4

You can use pathinfo instead of Regex.

$file = 'vacation.jpg';
$path_parts = pathinfo($file);
$filename = $path_parts['filename'];

echo $filename;

Comments

2

And if you really need regex, this one will do it:

$success = preg_match('~([\w\d-_]+)\.[\w\d]{1,4}~i', $original_string, $matches);

Inside matches you will have first part of file name.

Comments

1

Better answers have already been provided, but here's another alternative!

$fileName = "myfile.jpg";
$name = str_replace(substr($fileName, strpos($fileName,".")), "", $fileName);

Comments

0

You don't need regex for this.

Approach 1:

$str = 'vacation.jpg';
$parts = explode('.', basename($str));
if (count($parts) > 1) array_pop($parts);
$filename = implode('.', $parts);

Approach 2 (better, use pathinfo()):

$str = 'vacation.jpg';
$filename = pathinfo($str, PATHINFO_FILENAME);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.