2010-01-07 110 views
1

取代多個連字符我寫的生成像正則表達式用單一個

/abc/deutschland/bbs-tagesfahrten/betz-mode-frotier-center-–-tress-teigwaren.html. 

現在我想用一個一個來代替重複破折號URL的正則表達式。我怎麼能夠?

回答

8
String.replaceAll("--+", "-"); 
2

使用此:

s/---*/-/g 
+1

這也將用「 - 」替代「 - 」。無害,但不必要。 – 2010-01-07 11:22:04

+0

@Carl你是對的。讓我把它改成'--- *'。 – 2010-01-07 11:24:31

+0

@lutz另一種解決方案是's/- + */-/g' – Gaim 2010-01-07 11:27:27

1

要更換整個URL 任何重複破折號:

<cfset PathPart = REReplace(InputUrl, "(.*/).*", "\1")> 
<cfset FilePart = ListLast(InputUrl, "/")> 
<cfset CleanUrl = PathPart & REReplace(FilePart, "-+", "-", "ALL")> 
3

<cfset InputUrl = "/abc/deutschland/bbs-tagesfahrten/betz-mode-frotier-center-–-tress-teigwaren.html"> 
<cfset CleanUrl = REReplace(InputUrl, "-+", "-", "ALL")> 

要在只有文件的一部分工作

也許更簡單的是,任何建議將是:

s/-{2,}/-/g 
+2

to CF-iize tO的建議: 2010-01-07 22:46:58

+0

+1。好一個人。這也更直觀一些。 – Leigh 2010-01-07 23:32:14

相關問題