Я действительно плохо с регулярными выражениями и считаю их слишком сложными. Тем не менее, мне нужно использовать их для выполнения некоторых манипуляций со строками в классическом 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 : swerte_60@laher.com"
Желаемая строка вывода:
"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 : sXXXXX_XX@XXXXX.XXX"
Примечание. Нам нужно разбить исходную строку на слова на основе одного пробела. Затем в этих словах нам нужно заменить все буквы (строчные и прописные) и цифры, кроме первого символа в каждом слове, на " X "
Я знаю, что это довольно сложно, но опытный эксперт по RegEx мог бы довольно легко поймать это, я думаю. Нет
Edit:
Я добился определенного прогресса. Нашел функцию (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 : XXXXXX@XXXXXX.XX
Мне бы хотелось, чтобы в каждом слове отображался первый символ. Любая помощь там?