[GastForen Programmierung/Entwicklung PHP und MySQL preg_replace doppelte Zeichen entfernen funzt nicht

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

preg_replace doppelte Zeichen entfernen funzt nicht

fraenzer
Beiträge gesamt: 5

13. Nov 2006, 12:04
Beitrag # 1 von 9
Bewertung:
(4096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Hab hier ne kleine Hilfsfunktion, die mir aus einem String ein paar doppelte Zeichen entfernen soll:

Code
private function doppelteZeichenEntfernen($zeichen, $variable) { 
return preg_replace("/^\\".$zeichen."{2,0}$/", $zeichen, $variable);
}


$zeichen ist hier beispielsweise ein Punkt oder n Plus oder so, die $variable symbolisiert meinen String.
Irgendwie will der aber nich so ganz, bei einer Eingabe von beispielsweise 10 Punkten hintereinander kürzt er mir das dann nicht auf einen Punkt, sondern läßt die 10 stehen.

Schonmal danke für Eure Hilfe!

Gruß

fraenzer
X

preg_replace doppelte Zeichen entfernen funzt nicht

oesi50
  
Beiträge gesamt: 2315

13. Nov 2006, 13:00
Beitrag # 2 von 9
Beitrag ID: #261587
Bewertung:
(4094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wie wärs denn damit:


Code
preg_replace('/(.)\1/', '$1', $variable) 



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#261559]

preg_replace doppelte Zeichen entfernen funzt nicht

fraenzer
Beiträge gesamt: 5

13. Nov 2006, 13:20
Beitrag # 3 von 9
Beitrag ID: #261595
Bewertung:
(4086 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jetzt komm ich nicht so ganz mit.
(.) : liefert mir der Part alle Abschnitte meines Strings, bei dem Punkte in irgendeiner Häufigkeit aufeinanderfolgen?

Dann macht mir das "\i" noch Kummer, oder hast Du den \ mit nem $ verwechselt.

Danke


als Antwort auf: [#261587]

preg_replace doppelte Zeichen entfernen funzt nicht

oesi50
  
Beiträge gesamt: 2315

13. Nov 2006, 13:48
Beitrag # 4 von 9
Beitrag ID: #261603
Bewertung:
(4084 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
/(.)\1/

dieser Ausdruck trifft alle Zeichen, die von sich selbst gefolgt werden.
Durch die Gruppierung () wird aber nur das erste Zeichen in $1 gespeichert.
Mit $1 wird nun der gefundene Ausdruck durch dieses Zeichen ersetzt.

Bsp:

aus aabbcc
wird abc


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#261595]

preg_replace doppelte Zeichen entfernen funzt nicht

fraenzer
Beiträge gesamt: 5

13. Nov 2006, 14:16
Beitrag # 5 von 9
Beitrag ID: #261615
Bewertung:
(4077 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
OK, das hab ich verstanden und auch erfolgreich ausgeführt, vielen Dank schonmal!

Jetzt hab ich aber das Problem, dass ich da natürlich ein wenig Dynamik reinbringen will, sprich der Punkt muss nicht unbedingt ein Punkt sein. Hab mal versucht, dass mit ner normalen Variable zu machen, aber dummerweise motzt er da sofort, funzt werder mit "" noch mit ''. Mhm!


als Antwort auf: [#261603]

preg_replace doppelte Zeichen entfernen funzt nicht

oesi50
  
Beiträge gesamt: 2315

13. Nov 2006, 14:54
Beitrag # 6 von 9
Beitrag ID: #261629
Bewertung:
(4072 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wie dynamisch soll es denn noch werden?
Der Punkt bedeutet doch schon jedes Zeichen.

Zitat . match any character except newline (by default)



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#261615]

preg_replace doppelte Zeichen entfernen funzt nicht

fraenzer
Beiträge gesamt: 5

13. Nov 2006, 14:59
Beitrag # 7 von 9
Beitrag ID: #261630
Bewertung:
(4068 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mhm, da is was dran ;-)

Dann hab ich natuerlich das Problem, dass auch aufeinanderfolgende gleiche Buchstaben ersetzt werden.

Meine Zeichen waeren erstmal das Leerzeichen, +, -, /, .
Meine Eingebung sagt mir, ich muss die Dinger mit nem \ maskieren, aber die dann via php-Variable in meinen Ausdruck zu bringen, da motzt mir mein Browser immer rum.

Es waer natuerlich kein Problem, das preg_replace einmal n paar mal im Quellcode zu haben mit den einzelnen Zeichen, aber das is ja ziemlich unschön.


als Antwort auf: [#261629]
(Dieser Beitrag wurde von fraenzer am 13. Nov 2006, 15:05 geändert)

preg_replace doppelte Zeichen entfernen funzt nicht

oesi50
  
Beiträge gesamt: 2315

13. Nov 2006, 15:22
Beitrag # 8 von 9
Beitrag ID: #261639
Bewertung:
(4061 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
aha, das ist was anderes

der gesuchte Ausdruck lautet:
Code
~([ +-/.])\1+~ 



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#261630]

preg_replace doppelte Zeichen entfernen funzt nicht

fraenzer
Beiträge gesamt: 5

13. Nov 2006, 15:45
Beitrag # 9 von 9
Beitrag ID: #261649
Bewertung:
(4057 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Yuppi!

Vielen Dank, hat funktioniert.
Einzig die Zeichen einzeln mußte ich noch mit nem \ maskieren, da er sonst wieder gemotzt hat.

Gruß

fraenzer


als Antwort auf: [#261639]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
05.03.2021 - 30.04.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 05. März 2021, 13.00 Uhr - Freitag, 30. Apr. 2021, 17.00 Uhr

Lehrgang

Im berufsbegleitenden Web Publisher Lehrgang vertiefen Sie Ihr Wissen rund um das Thema Screendesign und die Umsetzung von Websites. Wir befähigen Sie dazu selbständig und professionell Ihren Webauftritt zu planen und in die Realität umzusetzen.

Preis: CHF 3'250.–
Dauer: 8.5 Tage - Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PWEB

medienjobs