2017-06-30 2 views
-4

Ich bin auf der Suche nach PHP-Code, um Wort aus dem Text mit Regex, preg_match(), preg_split(), oder auf andere Weise zu trennen.Wie erfasse ich Teilstrings, die mit einem Hashtag beginnen?

$textstring="one #two three #four #five"; 

Ich brauche zu bekommen #two, #four und #five als Array-Elemente gespeichert.

+0

reine Code-Schreiben-Anfragen sind Off-Topic auf Stack Overflow - wir erwarten q Fragen hier zu * spezifischen * Programmierproblemen - aber wir werden glücklich Ihnen helfen, es selbst zu schreiben! Sagen Sie uns [was Sie versucht haben] (https://stackoverflow.com/help/how-to-ask), und wo Sie stecken bleiben. Dies wird uns auch helfen, Ihre Frage besser zu beantworten. – DaveP

+1

Willkommen bei StackOverflow! ** Wir sind kein Code-Writing-Service. ** Bitte zeigen Sie uns, was Sie versucht haben, und beschreiben Sie, was das Problem ist. Erfahren Sie auch, wie Sie Fragen stellen können (https://stackoverflow.com/help/how-to-ask), um weitere Tipps zu erhalten. – Akira

Antwort

-1

Try Spaltung durch diese: \b #

preg_split("/\\b #/", $text) 
+0

Danke für den Vorschlag. Ich habe versucht, diesen Code aber zur Folge haben noch Array erhalten ( [0] => ein [1] => zwei drei [2] => vier [3] => fünf ) müssen nur # zwei, # vier ,#fünf. Vielen Dank. – kew

1

Try this:

$text="one #two three #four #five"; 
$parts = array_filter(
    explode(' ', $text), // split into words 
    function($word) { 
     // filter out all that don't start with '#' by keeping all that do 
     return strpos($word,"#")===0; 
     // returns true when the word starts with "#", false otherwise 
    } 
); 
print_r($parts); 

Sie können es hier sehen: https://3v4l.org/YBnu3

Sie auch auf array_filter lesen möchten

0

Verwenden Sie eine negierte Zeichenklasse afte r die # Symbol für höchste Muster Effizienz:

Muster: (Demo)

#[^ ]+ #this will match the hashtag then one or more non-space characters. 

Code: (Demo)

$in='one #two three #four #five'; 
var_export(preg_match_all('/#[^ ]+/',$in,$out)?$out[0]:'failed'); // access [0] of result 

Ausgang:

array (
    0 => '#two', 
    1 => '#four', 
    2 => '#five', 
) 
Verwandte Themen