vbs replace 替换第二个匹配字符
int inthestr(char *s,char ch)
{
while(*s!='\0'){
if(*s==ch)
return 1;
s++;
}
return 0;
}
VBS有强大的正则支持,这样的数据用正则来做比较方便,下面是一个用正则做好的函数,直接调用就可以了:
WScript.Echo RP("000123012") Function RP(strSrc) Dim objReg Set objReg = New RegExp With objReg .Global = True .Pattern = "^(?:0+)?(.*)" RP = .Replace(strSrc, "$1") End With
s = "aaabaaabaaa" '原始字符串
p = "b" '要替换的字符串
r = "$" '替换什么字符串
l = len(p) '计算要替换的字符串长度
m = 0 '初始化计数变量
n = 0 '初始化位置变量
for i = 1 to len(s) '遍历原始字符串
if mid(s,i,l) = p then '查找要替换的字符串
m = m + 1 '计数加1
if m = 2 then '要替换第二个被查找到的字符串
n = i '将查找到的第二个字符串的位置赋值给n
end if
end if
next
ss = left(s,n-1) & r & right(s,len(s)-n-l+1) '最终字符串组成为n之前的字符+替换后的字符+第二处要替换的字符串后面的内容
msgbox ss
s = "aaabaaabaaa" '原始字符串
p = "aba" '要替换的字符串
r = "$@#$$&&" '替换什么字符串
l = len(p) '计算要替换的字符串长度
m = 0 '初始化计数变量
n = 0 '初始化位置变量
for i = 1 to len(s) '遍历原始字符串
if mid(s,i,l) = p then '查找要替换的字符串
m = m + 1 '计数加1
if m = 2 then '要替换第二个被查找到的字符串
n = i '将查找到的第二个字符串的位置赋值给n
end if
end if
next
ss = left(s,n-1) & r & right(s,len(s)-n-l+1) '最终字符串组成为n之前的字符+替换后的字符+第二处要替换的字符串后面的内容
msgbox ss
正则表达式?这种小问题没有必要吧!如果我想替换第三个还得修改正则表达式,我觉得有一定难度,我的脚本2改成3就好,一看就明白
这种问题用正则是更好的选择,代码如下:
Option Explicit
Dim strSrc, strPlc, strDst
strSrc = "aaabaaaabaaaaabaa" '源字符串
strPlc = "b" '需要从源字符串中替换掉的字符
strDst = "Z" '替换后的目标字符
Dim objRex
Set objRex = New RegExp
With objRex
.Pattern = "^(.+?" & strPlc & ".+?)" & strPlc & "(.*)$"
.IgnoreCase = True '忽略大小写,如果改为 false 则区分大小写
strSrc = .Replace(strSrc, "$1" & strDst & "$2")
End With
WScript.Echo strSrc
Set objRex = Nothing
哀淑芙新: s = "aaabaaabaaa" '原始字符串 p = "b" '要替换的字符串 r = "$" '替换什么字符串 l = len(p) '计算要替换的字符串长度 m = 0 '初始化计数变量 n = 0 '初始化位置变量 for i = 1 to len(s) '遍历原始字符串 if mid(s,i,l) = p then '查找要替换的字符串 ...
和县19511153799: VBS 循环替换多个文本中的字符 - ?
哀淑芙新: 支持拖放功能 你只要把整个文件夹拖放到这个vbs文件上就可以了 他会自动识别txt格式的文件并修改 For Each a In WScript.Arguments w=w&a Next set ws=createobject("wscript.shell") set fso=createobject("scripting.filesystemobject") set ...
和县19511153799: vb中利用replace替换,如果一行中有多个相同的数,但是不想全部替换怎么办? - ?
哀淑芙新: Replace函数的第五参数表示替换次数(第四参数指替换开始处).Private Sub Form_Load() Dim sTemp As String sTemp = "i am a boy 100 20 100 30" sTemp = Replace(sTemp, "100", "50", , 1) sTemp = Replace(sTemp, "100", "60", , 1) MsgBox sTemp End Sub
和县19511153799: vb查询字符串并替换 - ?
哀淑芙新: 查找字符串的函数是 instr,替换字符串的函数是replace,用法:instr(n , S1 , S2) 在字符串S1中,从左边第n个字符向后搜索S2第一次出现的位置,例如 i = instr ( 3, "abcbcbc", "b" ),此时 i = 4 replace(s,s1,s2) 在字符串s中搜索s1,如果搜索到就将s1替换成s2,例如 replace("asdfasdfasfas","asd","m") 结果是 mfmfasfas 希望对你有用
和县19511153799: 如何使用VBS查找,替换文本文件中的字符 - ?
哀淑芙新: instr 查找 replace 替换 结合这2个函数 完成你要的功能
和县19511153799: vbs中替换字符串换行回车符 - ?
哀淑芙新: str = replace(str,"\n","#") 这句里面的 \n 是什么,就是两个字符,不会当成换行符的,replace只是个简单的函数,里面哪有特殊的转移字符表示特殊的字符,要替换 这么写 str = replace(str,chr(10),"#") 直接用正则表达式 regexp 对象去处理吧
和县19511153799: VB用Replace()替换字符,怎么判断是否替换成功 - ?
哀淑芙新: 举例:s = "ffffffffffff" s2 = Replace(s, "hh", "a") If s2 = s Then MsgBox "没有替换" If s2 <> s Then MsgBox "有替换" s = "ffffffffffff" s2 = Replace(s, "f", "a") If s2 = s Then MsgBox "没有替 If s2 <> s Then MsgBox "有替换
和县19511153799: 如何利用replace函数对一段话中的几个词语对应几个词语的替换 求详解举例 - ?
哀淑芙新:[答案] 注明这个我也是在一个帮助文档上见过,也用过一次,蛮不错的很好! 想你应该也是一个初学者哈!以后有问题可以讨论的! REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法 REPLACE ( 'string_...
和县19511153799: JS Replace 怎样替换第二个匹配的字符? - ?
哀淑芙新: var aa=str.replace("评语","") alert(aa)或者alert(str.replace("评语",""))
和县19511153799: 在VB中如何在把“你”替换成“我”的同时把“我”替换成“你”? - ?
哀淑芙新: 有一个思路,就是先把“你”替换成一个别的字符,这个字符必须是保证在被搜索的字符串中不出现的特殊字符,第二步将“我”替换成“你”,最后再把那个特殊字符替换成“我”.就是总共需要三个Replace.但具体实施你自己想,因为不知道你程序的环境. 希望能够帮到你.