在我的数据库中,某些关键字被“/”和“\”字符包围。
在应用程序端,在ColdFusion中,我试图提取和分离出现在“/”和“\”
包围的文本字符串之前或之后的文本所以说我有一句话:我的胡扯有一个名字,它是/ HOMER \
同样,“/”和“\”可以出现在一串文本之前或之后,如下所示:
/Ash\ Gotta catch’em all
/Nike\ Just do it.
Impossible is nothing. /Adidas\
微软已经面临与刚推出的Windows相关的诉讼,一位操作系统技术设计师指责微软剥夺了其“瓷砖”的专利权。 昨天在美国缅因州地方法院提起诉讼的SurfCast表示,微软侵犯了其四项专利中的一项 - 第6,724,403号 - “制造,使用,销售和提供销售设备和软件产品” SurfCast的专利涵盖。这包括使用Windows Phone 7和Windows Phone 8操作系统的移动设备以及使用/ Windows 8 \ 的PC
如何提取和分隔出现在“/”和“\”包围的文本字符串之前或之后的文本?
答案 0 :(得分:5)
如果单独的文字始终位于开头/结尾,您只需使用ListFirst即可:
<cfset First = ListFirst(Text,'/\') />
<cfset Last = ListLast(Text,'/\') />
并且你将两个部分都放在不同的变量中。要确定哪个是哪个,您需要Left(Text,1)
来确定原始文本是否以/
开头。
否则,您可以使用rematch提取/ ... \ text:
<cfset Slashes = rematch('/[^\\]+(?=\\)',Text) />
返回以/
开头的匹配数组 - 您无法避免在CF的正则表达式中捕获第一个斜杠(没有后备支持),但您可以随后使用substring将其删除:
<cfset Slashes[x] = Slashes[x].substring(1) />
(如果只有一个结果,请使用1
代替x
,否则您需要循环。)
要获得没有此值的文本,您可以使用简单的replace,如下所示:
<cfset Unslashed = replace(Text,'/#Slashes[x]#\','') />