对于正则表达式我觉得很糟糕,并且发现它们太复杂。但是,我需要使用它们在经典的asp中进行一些字符串操作。根据我的需要开发正则表达式
输入字符串:
"James John Junior
S.D. Industrial Corpn
D-2341, Focal Point, Phase 4-a,
Sarsona, Penns
Japan
Phone : 92-161-4633248 Fax : 92-161-253214
email : [email protected]"
所需的输出字符串:
"JXXXX JXXX JXXXXX
S.X. IXXXXXXXXX CXXXX
D-XXXX, FXXXX PXXXX, PXXXX 4-X,
SXXXXXX, PXXXX
JXXXX
PXXXX : 9X-XXX-XXXXXXX Fax : 9X-XXX-XXXXXX
eXXXX : [email protected]"
注:我们需要再拆原字符串成字基于单一的空间,那些话,我们需要用“X”来代替除了每个单词中的第一个字符以外的所有字母(大写和小写)和数字
我知道它有点困难,但一位经验丰富的RegEx专家可以很容易地认出我的想法。没有?
编辑:
我已经取得了一些进展。找到了一种可以完成这项工作的功能(http://www.addedbytes.com/lab/vbscript-regular-expressions/)。但需要一点点的改进,如果有人能帮助
function ereg_replace(strOriginalString, strPattern, strReplacement, varIgnoreCase)
' Function replaces pattern with replacement
' varIgnoreCase must be TRUE (match is case insensitive) or FALSE (match is case sensitive)
dim objRegExp : set objRegExp = new RegExp
with objRegExp
.Pattern = strPattern
.IgnoreCase = varIgnoreCase
.Global = True
end with
ereg_replace = objRegExp.replace(strOriginalString, strReplacement)
set objRegExp = nothing
end function
林调用它像这样 -
orgstr = ereg_replace(orgstr, "\w", "X", True)
但是,结果看起来像 -
XXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXX.
XX, XXXXX XXXX, XXXXXX XXXXXX, XXXXXXX XXXXXXX, XXXXXXXXX
XXXXX : XXX-XXX-XXXX
XXX :
XXXXX : [email protected]
我想这显示每个单词中的第一个字符。有什么帮助吗?
经典ASP?真?我会说你失去了运气,因为我敢打赌,经典的ASP(不像ASP.NET)不支持变量重复内部的后置断言,你肯定需要实现这一点。 – 2012-02-14 07:51:45
我只是没有正则表达式......通过字符读取字符,并保持是否传递真实字符或X来输出的布尔值。然后,当你通过空白时意味着下一个字符是真实的。你也可以编程某些字符(比如@或者。)直接通过。比所有这些与正则表达式相关的问题要容易得多。 :) – Chris 2012-02-14 12:14:00
答案在于'GetRef'和VBScript使用的正则表达式引擎为调用替换函数中找到的匹配函数调用函数的能力。然而,我现在还没有时间写出全部的内容,对其他答复者表示感谢,他们可以在回答问题之前发表一个答案,以说明我正在概述的内容。 – AnthonyWJones 2012-02-14 15:32:20