【发布时间】:2015-07-10 14:12:05
【问题描述】:
我正在使用正则表达式来替换所有不等于确切单词“NULL”的字符并保留所有数字。我做了第一步,将字符串中的所有“NULL”单词替换为:
<cfset data = ReReplaceNoCase("123NjyfjUghfLL|NULL|NULL|NULL","\bNULL\b","","ALL")>
它会删除确切的“NULL”单词的所有实例,这意味着它不会从子字符串“123NjyfjUghfLL”中删除字母“N”、“U”和“L”。这是正确的。但现在,我想扭转这种局面。我只想保留“NULL”字,这意味着它删除了单个“L”、“U”和“L”。所以我尝试了:
<cfset data = ReReplaceNoCase("123NjyfjUghfLL|NULL|NULL|NULL","[^\bNULL\b]","","ALL")>
但是现在它保留了所有的“N”、“U”和“L”字母,所以它输出“NULLNULLNULLNULL”。 “NULL”应该只有3次。
有人可以帮我解决这个问题吗?以及在哪里添加额外的代码来保留数字?谢谢。
【问题讨论】:
-
我想出了这个:
writeOutput(RereplaceNoCase(variables.a,"^((?!NULL).)*","","ALL"));基于stackoverflow.com/questions/406230/…,但它仍然不是你想要的。一个很好的起点也许@adamcameron 可以提出一些建议。
标签: regex coldfusion