Vielleicht kann dieses Problem nicht gelöst werden, wie ich will, aber vielleicht können Sie mir helfen Jungs.Regex Regeln in einem Array
Ich habe viele falsch geschriebene Wörter im Namen meiner Produkte.
Einige von ihnen (
und Hinter )
oder vielleicht einer von ihnen hat sich führt, ist es für /
und "
Zeichen gleich.
Was ich tue ist, dass ich den Namen des Produkts durch Leerzeichen explodiere, und diese Wörter untersucht.
Also ich will sie zu nichts ersetzen. Aber eine Festplatte könnte 40GB ATA 3.5" hard drive
sein. Ich muss das ganze Wort verarbeiten, aber ich kann nicht die gleiche Methode für 3.5"
wie für ()
oder //
verwenden, weil diese 3.5"
gültig ist.
Also muss ich nur die Anführungszeichen ersetzen, wenn es am Anfang der Zeichenfolge und am Ende der Zeichenfolge ist.
$cases = [
'(testone)',
'(testtwo',
'testthree)',
'/otherone/',
'/othertwo',
'otherthree/',
'"anotherone',
'anothertwo"',
'"anotherthree"',
];
$patterns = [
'/^\(/',
'/\)$/',
'~^/~',
'~/$~',
//Here is what I can not imagine, how to add the rule for `"`
];
$result = preg_replace($patterns, '', $cases);
Das ist gut funktioniert, aber kann es in einem regex_replace()
getan werden? Wenn ja, kann jemand mir die Muster für die Zitate helfen?
Ergebnis für Zitate sollte dies sein:
'"anotherone', //no quote at end leave the leading
'anothertwo"', //no quote at start leave the trailin
'anotherthree', //there are quotes on start and end so remove them.
Bedeutet es, Sie brauchen 2 regexps - 1) zunächst für einen '“ 'wenn der String endet mit' '' '' '' '' '' '' '' '' 'und '2' für ein abschließendes '' 'wenn das erste' '' war (keine Möglichkeit für das aktuelle Ansatz)? –
@ WiktorStribiżew Quotes können nur ersetzt werden, wenn das erste Zeichen ein '' 'ist und das letzte Zeichen' '' quote too, und shold nur diese 2 Anführungszeichen ersetzt werden. – vaso123