2011-11-05 9 views
14

Sono piuttosto nuovo rispetto alle espressioni regolari. Ho bisogno di pulire una stringa di ricerca dagli spazi all'inizio e alla fine. Esempio: "stringa di ricerca" Risultato: "stringa di ricerca"Rimuovi gli spazi dall'inizio e alla fine di una stringa

Ho un modello che funziona come una soluzione javascript, ma non posso farlo funzionare su PHP utilizzando preg_replace:

Javascript patern che funziona:

/^[\s]*(.*?)[\s]*$/ig 

Il mio esempio:

$string = preg_replace('/^[\s]*(.*?)[\s]*$/si', '', " search string "); 
print $string; //returns nothing 

Su analizzare mi dice che g non è riconosciuto quindi ho dovuto REMOV e e cambia l'ig a si.

+0

possibile duplicato del [Elimina spazio in più alla fine della stringa usando preg \ _replace ] (http://stackoverflow.com/questions/4787219/remove-extra-space-at-the-end-of-string-using-preg-replace) –

+0

Questa è una domanda leggermente diversa da http: // StackOverflow. it/questions/4787219/remove-extra-space-at-the-end-of-string-using-preg-replace che chiede come rimuovere solo lo spazio alla fine della stringa dove la mia domanda è sia all'inizio che alla fine. La soluzione per questo è diversa dalla domanda sollevata da @daron – Alex

risposta

47

Se è solo lo spazio bianco, perché non usare solo trim()?

+1

DUH! grazie: D mi sono completamente dimenticato di questa funzione – Alex

+0

E non penso nemmeno di usare espressioni regolari per questo. :) – GolezTrol

+0

I wont, trim() è la soluzione migliore :) – Alex

5

Sì, è necessario utilizzare assetto() Credo che .. Ma se si vuole veramente che regex, qui è:

((?=^)(\s*))|((\s*)(?>$)) 
+1

grazie anche a questa soluzione: preg_replace ('/^((? = ^) (\ S *)) | ((\ s *) (?> $))/si ',' ', "asd asd"); – Alex