关于单个字符的正则表达式问题

时间:2011-05-06 15:52:55

标签: regex coldfusion

我想使用正则表达式替换URL中的单个字符。

网址如下:

http://www.example.com/e343/Product.html

我想在第一个斜杠之后使用正则表达式替换任何不是"t"的字符。在这种情况下,使用的字母是字母"e"

在这种情况下,我使用ColdFusion MX,所以如果有正则表达式的替代方案,我会很乐意使用它。

4 个答案:

答案 0 :(得分:3)

([^/]+//[^/]+/)([^t])


$1 = before your inalid character
$2 = the char 'e', ot anything other than 't'

根据您的解析器,您可能需要将 / 字符转义为 \ /

答案 1 :(得分:1)

您可以在CF MX中使用REReplace功能。制作正则表达式的基本思想是将之外的所有要替换的字符放入捕获组中,并使用反向引用将它们保存在替换字符串中。类似的东西:

REReplace(url, "(^http://[^/]*/)([^t])(.*)", "\1t\3", "ONE")

如果第一个/之后的第一个字符是t,整个正则表达式将不匹配,任何内容都不会被替换。

答案 2 :(得分:0)

<cfset address = 'http://www.domain.com/e343/Product.html' />
<cfset updated = reReplaceNoCase(address, '(\w/)[^t]?', '\1') />
<cfoutput>#updated#</cfoutput>

结果

http://www.domain.com/343/Product.html

它总是找到以字母开头的第一个斜杠,如果它不是't',还包括斜杠后面的字母。然后它将所有匹配替换为除了不是't'的字母之外的所有内容。

答案 3 :(得分:-1)

这是我找到的最有用的正则表达式页面。每个开发人员都应该链接到这个。

http://txt2re.com/