找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19267|回复: 4

[问题求助] VBS去掉字符串中所有尖括号<...>之间的字符

[复制链接]
发表于 2009-5-4 20:02:09 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-19 12:23 编辑

比如我的字符串是
22233< /b>3333aa
   <u8fj>d93j
3

注意带换行符的,如果去掉所有的<...>其他不变返回新字符,就是把所有的<...>用空字符串替代,应该怎么写呀

我想放在VBS里,批处理写的如何放进去用也请说下,THX
发表于 2009-5-5 08:12:51 | 显示全部楼层
使用正则来处理的一个例子,如果内容在文档中,自己可稍做修改,另:这里不替换“<>”,也就是当尖括号中内容为空时,不进行替换...
测试代码:

  1. dim test(4),regEx
  2. test(0)="22233< /b>3333aa"
  3. test(1)="<u8fj>d93j"
  4. test(2)="3"
  5. test(3)="OK<this is a test>test this"
  6. test(4)="test here<>test here"
  7. for i=0 to 4
  8. Mystr=Mystr & vbcrlf & test(i)
  9. next
  10. msgbox "处理前字符:"&Mystr
  11. Set regEx = New RegExp   
  12. regEx.Pattern ="<[^<]{1,}>"
  13. regEx.IgnoreCase = True
  14. regEx.Global = True        
  15. msgbox regEx.replace(Mystr,"")      
复制代码
发表于 2009-5-5 12:23:28 | 显示全部楼层
嗯,用正则最好。

好像regEx.Pattern = "<[^>].*>"也可以。
 楼主| 发表于 2009-5-6 08:55:17 | 显示全部楼层
codehtml_s=split(yaojia_shuju,">")
for t=0 to ubound(codehtml_s)
if instr(codehtml_s(t),"<")<>0 then
codehtml_m=split(codehtml_s(t),"<")(0)
else
codehtml_m=codehtml_s(t)
end if
codehtml_all=codehtml_all&codehtml_m
next
这是我写的,正则还没学!

[ 本帖最后由 sexfio 于 2009-5-6 08:56 编辑 ]
发表于 2009-5-8 08:48:42 | 显示全部楼层
replace <>, 怪异字符0

replace <,怪异字符
replace >,怪异字符

split(str,怪异字符)

循环将偶数下标取出来合并。

replace 怪异字符0,<>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 17:22 , Processed in 0.018155 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表