Domanda

Voglio dividere una stringa in due parti, la stringa è quasi testo libero, ad esempio:

$string = 'hi how are you';

e voglio che la divisione sia simile a questa:

array(
    [0] => hi
    [1] => how are you
)

Ho provato a usare questo regex: /(\S*)\s*(\.*)/ ma anche quando l'array restituito ha le dimensioni corrette, i valori diventano vuoti.

Quale dovrebbe essere lo schema necessario per far funzionare tutto questo?

È stato utile?

Soluzione

Quali sono i requisiti? Il tuo esempio sembra piuttosto arbitrario. Se tutto ciò che vuoi è dividere il primo spazio e lasciare solo il resto della stringa, lo farebbe usando esplodere :

$pieces = explode(' ', 'hi how are you', 2);

Che sostanzialmente dice "dividi sugli spazi e limita l'array risultante a 2 elementi"

Altri suggerimenti

Non dovresti sfuggire a ". " nell'ultimo gruppo. Stai cercando di abbinare qualsiasi personaggio, non un periodo letterale.

Corretto: /(\S*)\s*(.*)/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top