注冊
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
正则表达式论坛
»
答疑解惑
» 从一个字符串中找出匹配项的问题?
返回列表
发帖
Meters
发短消息
加为好友
Meters
当前离线
UID
2240
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2010-9-4
最后登录
2011-3-16
新手上路
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2010-9-4 13:17
|
只看该作者
从一个字符串中找出匹配项的问题?
本帖最后由 Meters 于 2010-9-4 14:22 编辑
从一个字符串中找出匹配项的问题(C#)?
原始数据: Zh"a"ng,San,
被转换后的数据:"Zh""a""ng,San,"
原始数据: Zh""a""ng,San,
被转换后的数据:"Zh""""a""""ng,San,"
请问,如何匹配被转换后的数据?(也就是一个转义符的问题,怎么相互进行转换)
收藏
分享
rex
发短消息
加为好友
rex
当前离线
UID
2
帖子
464
精华
0
积分
254
阅读权限
200
在线时间
224 小时
注册时间
2008-11-3
最后登录
2012-2-3
管理员
2
#
发表于 2010-9-4 14:34
|
只看该作者
不太理解题义。将每个双引号替换为两个双引号,然后首尾加双引号?
在答疑解惑版提问时,请注明所用语言、范例文本、匹配结果。谢谢!
------------------------------------------------------------------------------
我爱正则表达式
GTalk: rex[at]zhasm[dot]com
Twitter:
rex_zhasm
TOP
Meters
发短消息
加为好友
Meters
当前离线
UID
2240
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2010-9-4
最后登录
2011-3-16
新手上路
3
#
发表于 2010-9-5 13:32
|
只看该作者
回复
2#
rex
这是Excel导出的.csv文件格式的数据,导出的数据为一个文本文件。然后中间用,分隔开,如果其中有特殊字符的就会用双引号括起来,包含双引号的就变成了2个连续的双引号。
我就是想用正则表达式将数据提取出来。
求解?
TOP
Meters
发短消息
加为好友
Meters
当前离线
UID
2240
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2010-9-4
最后登录
2011-3-16
新手上路
4
#
发表于 2010-9-5 23:11
|
只看该作者
本帖最后由 Meters 于 2010-9-5 23:31 编辑
回复
2#
rex
我在网上搜索到了一种解法?
C# Code:
//解法一:
Regex reg = null;
//reg = new Regex("(?:\\s*([\"'])?(.*?))(?(1)\\1)(?:\\s*,\\s*|$)"); //作者说这有点问题
reg = new Regex("(?!$)\\s*([\"'])?(.*?)(?(1)\\1)(?:\\s*,\\s*|$)");
//解法二:
reg = new Regex("(?:\"(?>[^\"]*(?:\"{2})?|\"(?<D>)|\"(?<-D>))*(?(D)(?!))\")|[^,\\n]*");
复制代码
需要帮个忙,讲下原理?
TOP
rex
发短消息
加为好友
rex
当前离线
UID
2
帖子
464
精华
0
积分
254
阅读权限
200
在线时间
224 小时
注册时间
2008-11-3
最后登录
2012-2-3
管理员
5
#
发表于 2010-9-6 20:06
|
只看该作者
老是觉得本页的正则怪怪的,请逐一核对一下,是不是copy过来时,漏掉了转义字符‘\’?
在答疑解惑版提问时,请注明所用语言、范例文本、匹配结果。谢谢!
------------------------------------------------------------------------------
我爱正则表达式
GTalk: rex[at]zhasm[dot]com
Twitter:
rex_zhasm
TOP
Meters
发短消息
加为好友
Meters
当前离线
UID
2240
帖子
4
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2010-9-4
最后登录
2011-3-16
新手上路
6
#
发表于 2010-9-6 20:23
|
只看该作者
本帖最后由 Meters 于 2010-9-6 21:04 编辑
回复
5#
rex
我在C#中做过测试的!
然后把C#中的源代码在复制过来的!
C#有些特殊字符需要通过\来进行转译!
去掉转义符:
(?:"(?>[^"]*(?:"{2})?|"(?<D>)|"(?<-D>))*(?(D)(?!))")|[^,\n]*
(?:\s*(["'])?(.*?))(?(1)\1)(?:\s*,\s*|$)
(?!$)\s*(["'])?(.*?)(?(1)\1)(?:\s*,\s*|$)
复制代码
TOP
返回列表
网海文摘
书记答疑
正则利器
搜索引擎
闲聊灌水
开发应用
正则引擎
学习资料
站务管理
广告招聘
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]