首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion 8中用于西班牙语字母表的RegEx

ColdFusion 8中用于西班牙语字母表的RegEx
EN

Stack Overflow用户
提问于 2009-07-21 20:11:38
回答 3查看 1.1K关注 0票数 2

我知道我可以使用a-z来检查CF8中从a到z的任何字母表。但是,有没有正则表达式可以检测西班牙字母表,比如á,í,ó,é,ñ,等等?

先谢谢你,蒙特

EN

回答 3

Stack Overflow用户

发布于 2009-07-21 21:47:32

ColdFusion不能很好地处理Unicode正则表达式。您可以使用诸如#Chr(375)#之类的东西将字符转换为正则表达式字符串,但是这样做有点麻烦。

但是,Java确实可以与Unicode一起使用,而且由于CF可以很容易地利用Java,因此您可以使用Java正则表达式来进行unicode匹配。

这将匹配Java regex中的单个Unicode字母:

代码语言:javascript
复制
\p{L}

有关regex Unicode的更多详细信息,请单击此处:http://www.regular-expressions.info/unicode.html

至于在CF中使用Java regex,简单的替换就是这样:

代码语言:javascript
复制
<cfset NewString = OldString.replaceAll('\p{L}','ReplaceWith') />

所以,如果你所需要的只是替换字符串,你可以这样做。

但是,如果您需要匹配(相当于重新匹配)或更复杂的功能,那么最简单的解决方案是使用一个组件,该组件将Java regex功能包装到一个易于使用的CFC中,其中包含您可以调用的常规CFML函数。像jre-utils.cfc一样

这允许您执行以下操作:

代码语言:javascript
复制
<cfset jre = createObject('component','jre-utils').init() />

<cfset Matches = jre.match( '\p{L}++' , String ) />

它将返回字符串中(Unicode)单词的数组。

票数 3
EN

Stack Overflow用户

发布于 2009-07-21 20:15:40

最近这里有一个关于国际RegExes的讨论,我现在找不到。我认为目前的情况是,正则表达式通常只有缺省的拉丁字母。

票数 0
EN

Stack Overflow用户

发布于 2009-07-21 20:35:53

如果特殊的"word字符类“\w对您有效,请尝试。注意:这也将匹配数字。也许你可以用一个例子来说明你到底想要实现什么?

\w应与aäá (但也与0)匹配。

\w(?<!\d)将匹配aäá (但不匹配0)。

\w+将与börk匹配,但也与l33t匹配。

\b(?:\w(?<!\d))+\b将匹配börk,但不匹配l33t

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1161507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档