这种字符串如何正则呢?高手来

zhanglili 2008-06-02 09:30:44
"ab\"cd"+"ef",当然要选出ab\"cd ef
...全文
101 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
uddwfn521 2008-06-02
  • 打赏
  • 举报
回复
string testStr = "\"ab\\\"cd\" + \"ef\"";

System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("(?<=[^\\\\])\"\\s*\\+\\s*\"|^\"|(?<=[^\\\\])\"");

System.Diagnostics.Debug.WriteLine(r.Replace(testStr, ""));


试试...



"ab\"cd" +"efab\"cd" +"efab\"cd" +"ef"

(?<=[^\\])"\s*\+\s*"|^"|(?<=[^\\])"





zhanglili 2008-06-02
  • 打赏
  • 举报
回复
结了,是比较复杂(@\s*".*")|("([^"\\]|\\.)*")
zhanglili 2008-06-02
  • 打赏
  • 举报
回复
粘边了,但是不得行。
wuhq030710914 2008-06-02
  • 打赏
  • 举报
回复
"[^\"]+(\")?[^\"]+"

试试
家鸣 2008-06-02
  • 打赏
  • 举报
回复

str= Regex.Replace(str, "^\"", "");
str= Regex.Replace(str, "\"$", "");
str= Regex.Replace(str, "\"\+\"", " ");
zhanglili 2008-06-02
  • 打赏
  • 举报
回复
我的意思是用正则选出"ab\"cd"+"ef"中的字符串啊。
用+spit不行。如果"ab\"c+d"+"ef",就完了
不得成世纪题了吧。高人来.
wuhq030710914 2008-06-02
  • 打赏
  • 举报
回复
先用:"+" spit
再用:(?<!\\)" replace
zhanglili 2008-06-02
  • 打赏
  • 举报
回复
不得吧,这么有意义的提问就 要被 埋没了啊?
madogao 2008-06-02
  • 打赏
  • 举报
回复
不知道楼主是什么意思

如果只是想取一个字符串中ab\"cdef的这部分

那就是Regex regex=new Regex("ab\\\"cdef");
zhanglili 2008-06-02
  • 打赏
  • 举报
回复
沉得快啊,顶。
yilanwuyu123 2008-06-02
  • 打赏
  • 举报
回复
SF UP一下...
wuhq030710914 2008-06-02
  • 打赏
  • 举报
回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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