30. december 2003 - 15:19
Der er
21 kommentarer og 1 løsning
Backslash fjernes
Hej. name.replaceAll("\\", "_"); Denne streng giver mig en fejl. java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ Jeg har indsat et backslash for at escape tegnet efterfølgende. Jeg får dog en fejl på det. Hvordan løser jeg det?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
30. december 2003 - 15:23
#1
Den fejler faktisk også på name.replaceAll("*", "_");
30. december 2003 - 15:32
#2
name.replaceAll("\\\\", "_");
30. december 2003 - 15:48
#3
tak. svar :-)
30. december 2003 - 15:51
#4
ingen forklaring?
30. december 2003 - 15:52
#5
den gav du jo ;-) det virker
30. december 2003 - 15:52
#6
name.replaceAll("*", "_"); skal være name.replaceAll("\\*", "_");
30. december 2003 - 15:54
#7
Nej, jeg mener hvorfor der skal fire \-ere til at fjerne een? Men du får den så alligevel: 1) I strenge i Java skal du skrive \\ for at få een \ - da det er escapetegnet 2) I .replaceAll skrier du faktisk et regulært udtryk. Her er \ også et escapetegn, så set som regulært udtryk skal det også stå der to gange Og 2 gange 2 = fire. Bare derfor. Stroffer og backslashes er bare så sjove!
30. december 2003 - 15:57
#8
name.replaceAll("\*", "_");
30. december 2003 - 15:57
#9
Ja, jeg har luret den. Ellers havde jeg også spurgt uddybende som i det spg fra idag ;-) Tak. og ja: "Stroffer og backslashes er bare så sjove!" :-)
30. december 2003 - 15:58
#10
det andet spg fra idag skulle der stå
30. december 2003 - 15:59
#11
Eller (men det er overkill) name.replaceAll("\\\*", "_"); " er nemlig ikke magisk i regulære udtryk
30. december 2003 - 16:00
#12
min virker med 2 slashes: name.replaceAll("\\*", "_"); ?!
30. december 2003 - 16:06
#13
Det bør give syntaksfejl - du har prøvet at oversætte??
30. december 2003 - 16:09
#14
der bliver smidt en fejl med en backslash. 2 virker fint og ja jeg har kørt oversat koden og afviklet den. samme udformning med disse: name = name.replaceAll("\\?", "_"); name = name.replaceAll("\\|", "_");
30. december 2003 - 16:10
#15
Det er mig der ikke kan læse. Jeg læser det som et " og du skriver * - de ser næsten ens ud på min skærm ;))
30. december 2003 - 16:12
#16
ok :)
30. december 2003 - 16:12
#17
Men skal de alle erstattes med _ kan du bare name = name.replaceAll("\\||\\?|\\\\|\\*", "_"); altså sætte et | imellem
30. december 2003 - 16:13
#18
smart. jeg tror jeg er ved at fatte en hel del om regulære udtryk.
30. december 2003 - 16:13
#19
Eller vende det om, så du definerer de lovlige tegn, og alle andre erstattes: name = name.replaceAll("[^a-zA-Z0-9]", "_"); fx.
30. december 2003 - 16:15
#20
ja. ligesom i php. havde godt overvejet om java kunne nogle af phps smarte tricks. men ikek testet. :)
30. december 2003 - 16:22
#21
Det er ikke specielt PHPsk ;) MEn ja, et sprog uden regulære udtryk er lidt kedeligt.
30. december 2003 - 16:23
#22
ok
Kurser inden for grundlæggende programmering