30. december 2004 - 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 fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
30. december 2004 - 15:23
#1
Den fejler faktisk også på name.replaceAll("*", "_");
30. december 2004 - 15:32
#2
name.replaceAll("\\\\", "_");
30. december 2004 - 15:48
#3
tak. svar :-)
30. december 2004 - 15:51
#4
ingen forklaring?
30. december 2004 - 15:52
#5
den gav du jo ;-) det virker
30. december 2004 - 15:52
#6
name.replaceAll("*", "_"); skal være name.replaceAll("\\*", "_");
30. december 2004 - 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 2004 - 15:57
#8
name.replaceAll("\*", "_");
30. december 2004 - 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 2004 - 15:58
#10
det andet spg fra idag skulle der stå
30. december 2004 - 15:59
#11
Eller (men det er overkill) name.replaceAll("\\\*", "_"); " er nemlig ikke magisk i regulære udtryk
30. december 2004 - 16:00
#12
min virker med 2 slashes: name.replaceAll("\\*", "_"); ?!
30. december 2004 - 16:06
#13
Det bør give syntaksfejl - du har prøvet at oversætte??
30. december 2004 - 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 2004 - 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 2004 - 16:12
#16
ok :)
30. december 2004 - 16:12
#17
Men skal de alle erstattes med _ kan du bare name = name.replaceAll("\\||\\?|\\\\|\\*", "_"); altså sætte et | imellem
30. december 2004 - 16:13
#18
smart. jeg tror jeg er ved at fatte en hel del om regulære udtryk.
30. december 2004 - 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 2004 - 16:15
#20
ja. ligesom i php. havde godt overvejet om java kunne nogle af phps smarte tricks. men ikek testet. :)
30. december 2004 - 16:22
#21
Det er ikke specielt PHPsk ;) MEn ja, et sprog uden regulære udtryk er lidt kedeligt.
30. december 2004 - 16:23
#22
ok
Kurser inden for grundlæggende programmering