超麻烦的字符串处理问题!!!。。

gukie 2009-09-19 04:43:58
超麻烦的字符串处理问题!!!。。

我现在有段字符串,中间包括中文,数字,邮箱地址,单引号,双引号,时间,逗号。我现在想从中间将电子邮箱分离出来。虽然字符串有一定的规律,类似"a","b","c","2009-09-19 12:00:00","aaa@126.com".但是并不都是这样,有时候双引号内会出现空值,而且还有可能存在单引号。

不知道各位有没有好的建议?如果处理这段字符串。谢谢!!

字符串范例:

"谷必霞","安徽省 芜湖市 繁昌县 安徽省芜湖市繁昌县迎春西路西华浴室(241200)","快递","","'159000000","2009-07-15 11:57:20","2009-07-18 09:20:46","【满198免邮】舒缓抗过敏祛红血丝甘草精原液抗老化 10ml","1","No:EH763320637CN","EMS",""
"2135965350","sukif","su12345@126.com","56.00","0.00","0","56.00","0","56.00","0","交易成功","贾璐璐 ,1380000000 ,022-25803040 ,天津 天津市 塘沽区 渤海石油路688号大厦B座B301渤海石油实业公司 ,300452 (蚕丝面膜,6款各一片) ","方洁兰"
...全文
130 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gukie 2009-09-19
  • 打赏
  • 举报
回复
哎。。。为什么我遇到的问题都这么复杂呢!
joking520谢谢你的帮助,你说得很有道理,但是,就是因为邮箱的出现是没规律的,并不是都排第五。呵呵。。。我这个字符串是从文本文档里拷贝过来的。估计只能手动一条一条去寻找了。。哎。。谢谢各位!!
joking520 2009-09-19
  • 打赏
  • 举报
回复
大哥,你这个很简单的嘛。。我看得出来,你这个是用户订购的信息或者是类似的信息吧。。

如果是,那说明了邮箱的位置是固定不变的,也就是说,之前是排在第五位,那无论中间的双引号有多少个空数据,但是邮箱的位置还是没变。。

a = """a","b","ss@12.com","c"""
aArr = split(a,",")
email = aArr(2)

这样不就好了吗??

如果邮箱的位置不确定,那就用正则提取。。
三楼の郎 2009-09-19
  • 打赏
  • 举报
回复
不知道你这个字符串是从哪来的,文本文件里读出来的还是别的什么地方传过来的?
gukie 2009-09-19
  • 打赏
  • 举报
回复
那空格呢?这个好像也会有问题哦。。。而且空格长度不同。。。
toury 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gukie 的回复:]
我想能否去掉所有的单引号和双引号,然后去掉所有的空格,再组成字符串。。。这样或许可行。。
[/Quote]
外部读取的时候先把字串里的里的双引号替换为~|~,单引号可以不动。这样就应该没问题了
gukie 2009-09-19
  • 打赏
  • 举报
回复
我想能否去掉所有的单引号和双引号,然后去掉所有的空格,再组成字符串。。。这样或许可行。。
gukie 2009-09-19
  • 打赏
  • 举报
回复
就是怎么让他变成"abcdef..."这种形式,现在的问题就是abcdef...中存在多个双引号和单引号,这个字符串就有可能没闭合。问题就是这么去处理abcdef...中的这些引号使得abcdef...成为真正的 字符串。

  • 打赏
  • 举报
回复
呵呵,啥叫不完整呢?
gukie 2009-09-19
  • 打赏
  • 举报
回复
7楼你好。谢谢你的提醒,因为比较紧急,所以没来得及更改。我知道你说的这个方法,但是现在的问题就是,我的那个文档里的内容不是一个完整的字符串。所以split(你的字符串,",")这个就不能用。因为存在双引号和单引号 的问题,而且有的有规律,有的没有。
toury 2009-09-19
  • 打赏
  • 举报
回复
你可以用split(你的字符串,","),然后循环读取,找到含有@符号的就是你要的信箱。

P.S.:建议你不要把数据库的内容直接贴到论坛上。最起码你要处理一下把实际地址、电话、姓名改掉再贴。
hookee 2009-09-19
  • 打赏
  • 举报
回复
因为要写成字符串常量,所以"被替换成""了。数据从外部读取的话,不需要处理双引号的。
gukie 2009-09-19
  • 打赏
  • 举报
回复
2楼请问一下,我的这个字符串比较长,我现在是想作为字符串去处理,但是中间有很多存在的双引号和单引号,导致中国部是完整的字符串,要如果较快的处理下才可以呢?或者说要这么替换引号才可以让他成为一个完整的字符串,而不是显示语句未结束呢!1

感谢hookee!!
gukie 2009-09-19
  • 打赏
  • 举报
回复
这个字符串很长。。。我是想获取里面的邮箱地址,公司的客户邮箱,之前没归档,现在只有这资料,我只要获取邮箱就可以了。先试试2楼的。。
这中间有个问题,就是会有这样的情况:
","EMS",""
"2135965350","sukif","

这里会丢掉引号,必须想办法加上去,2楼的改成了这样:","EMS",""”""""2135965350","sukif","

要加这么多双引号??这个怎么去判断?我都被搞昏头了。。
三楼の郎 2009-09-19
  • 打赏
  • 举报
回复
太小儿科了,这个格式叫做以逗号分隔的文本格式,可以直接用Microsoft Text Driver(*.txt;*.csv)把它当作一种数据库直接用就是了,不知道楼主是要导入数据库还是仅仅是做个查询!
hookee 2009-09-19
  • 打赏
  • 举报
回复

s = """谷必霞"",""安徽省 芜湖市 繁昌县 安徽省芜湖市繁昌县迎春西路西华浴室(241200)"",""快递"","""",""'159000000"",""2009-07-15 11:57:20"",""2009-07-18 09:20:46"",""【满198免邮】舒缓抗过敏祛红血丝甘草精原液抗老化 10ml"",""1"",""No:EH763320637CN"",""EMS"",""""" &_
"""2135965350"",""sukif"",""su12345@126.com"",""56.00"",""0.00"",""0"",""56.00"",""0"",""56.00"",""0"",""交易成功"",""贾璐璐 ,1380000000 ,022-25803040 ,天津 天津市 塘沽区 渤海石油路688号大厦B座B301渤海石油实业公司 ,300452 (蚕丝面膜,6款各一片) "",""方洁兰"""
Set re = New RegExp
With re
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "\b\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+\b"
Set col = re.Execute(s)
End With
For Each m In col
Response.Write m.Value & "<br>"
Next
sinbasara 2009-09-19
  • 打赏
  • 举报
回复
帮顶

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧