-1

I used preg_match but its returning pdf as it English that's why may be.

But I want to get only 練馬春日町Ⅳ

Is there any way to detect it for mb string.

<?php 
// Initialize a sentence to a variable 
$sentence = '練馬春日町Ⅳ 清掃レポート.pdf'; 

// Use preg_match() function to get the 
// first word of a string 
preg_match('/\b\w+\b/i', $sentence, $result);  

// Display result 
echo "The first word of string is: ".$result[0]; 

?>

FIDDLE

1 Answer 1

1

To make your code work you just need to add the u flag to the regex so that it matches unicode characters:

preg_match('/^\w+/iu', $sentence, $result);  
echo "\nThe first word of string is: ".$result[0];

Output:

The first word of string is: 練馬春日町Ⅳ

Note that since you want the first word you can simply anchor your regex with ^ and the second \b is not required as \w+ will match as many word characters as it can i.e. until it gets to the first word break.

Alternatively you can use mb_split with a regex of \p{Z} which matches any unicode whitespace or invisible separator:

$sentence = '練馬春日町Ⅳ 清掃レポート.pdf'; 
$first_word = mb_split('\p{Z}', $sentence);
echo $first_word[0];

Output:

練馬春日町Ⅳ

Demo on 3v4l.org

Sign up to request clarification or add additional context in comments.

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.