求一正则表达式

nobody@noone 2009-12-14 12:17:28
现在有一字符串 abc,d\,e,fgh用split方法分组
现在要按,分组但是要排除\,
想要的分组为 abc d\,e fgh
如果我表达式写成 /[^\\],/
它会把,前的一个字符也整进去,结果变成ab d\, fgh
请问这个正则式应该如何写?
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
muxrwc 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wcwtitxu 的回复:]
JScript code
array= str.match(/(?:[^,\\]|\\.)+/g);
[/Quote]



其实用那种a*(?:ba*)*的方式,是因为能快一点...因为能减少不必要的分支产生
不过测试,好像也没快多少= =,仅仅只有一点点...= = 可能用固化还没有那个效率高.(这个没测试)
jamesmos 2009-12-14
  • 打赏
  • 举报
回复
如果字符串的形式能够控制,就不要用\作标记
如果不能控制,那就先做预处理,把\换成别的标识

转义符这么棘手的东西,能不用尽量不用
nobody@noone 2009-12-14
  • 打赏
  • 举报
回复
2位的答案都正确,且回答时间都差不多,各给一半好了,谢谢了
dzl84394 2009-12-14
  • 打赏
  • 举报
回复
你转成“\\,”还不如转成别的呢
道光2008 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 muxrwc 的回复:]
JScript code/(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/g

JScript codejavascript:alert('abc,d\\,e,fgh'.match(/(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/g).join('\n..........\n'));
[/Quote]支持
wcwtitxu 2009-12-14
  • 打赏
  • 举报
回复

array = str.match(/(?:[^,\\]|\\.)+/g);
浴火_凤凰 2009-12-14
  • 打赏
  • 举报
回复
直接使用逗号没有任何问题啊!!
楼主可以测试一下代码:
alert("abc,d\,e,fgh".split(",")[1])结果为d
muxrwc 2009-12-14
  • 打赏
  • 举报
回复
/(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/g


javascript:alert('abc,d\\,e,fgh'.match(/(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/g).join('\n..........\n'));

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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