C#正则表达式匹配字符串取反

huanglei_js 2017-05-31 06:36:27
如题,例子:我现在有一个字符串:

get_data("1",2,{"AA","BB"},{"CC","DD"})

我想根据模板字符串:

get_data("#0#",#1#,{#2#},{#3#})

来获取上述中的1、2、"AA","BB"和"CC","DD"

请问怎样写正则表达式?

求大神解答~~~~
...全文
338 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanglei_js 2017-06-07
  • 打赏
  • 举报
回复
引用 6 楼 rocmemory 的回复:
取里面的数据,就是这样 Match result = Regex.Match("...."); result.Groups集合就存储了用(.*?)匹配到的各个部分
谢谢大佬,问题解决了,之前不很了解Regex类,通过暴力拆分解决的~
huanglei_js 2017-06-07
  • 打赏
  • 举报
回复
引用 5 楼 huanglei_js 的回复:
[quote=引用 2 楼 rocmemory 的回复:] get_data\(\"(.*?)\",(.*?),\{\"(.*?)\",\"(.*?)\"\},\{\"(.*?)\",\"(.*?)\"\}\)
我只想获取里面的数据,应该是反向匹配,其他的不需要[/quote] 哈哈,刚刚看了下Regex类,匹配后的值都存在了Group中,学习了,谢谢大佬~
huanglei_js 2017-06-01
  • 打赏
  • 举报
回复
引用 2 楼 rocmemory 的回复:
get_data\(\"(.*?)\",(.*?),\{\"(.*?)\",\"(.*?)\"\},\{\"(.*?)\",\"(.*?)\"\}\)
我只想获取里面的数据,应该是反向匹配,其他的不需要
huanglei_js 2017-06-01
  • 打赏
  • 举报
回复
额,我只想获取里面的数据:1、2、"AA","BB"和"CC","DD",就是反向匹配,其他的都不要
为轮子而生 2017-06-01
  • 打赏
  • 举报
回复
你模板中的2、3是没有引号的,请自行对照修改
为轮子而生 2017-06-01
  • 打赏
  • 举报
回复
get_data\(\"(.*?)\",(.*?),\{\"(.*?)\",\"(.*?)\"\},\{\"(.*?)\",\"(.*?)\"\}\)
xuzuning 2017-06-01
  • 打赏
  • 举报
回复


你需要做的是:
1、将 get_data("#0#",#1#,{#2#},{#3#}) 处理成
get_data\("#0#",#1#,\{#2#\},\{#3#\}\)
即转义正则规则符
2、继续处理成
get_data\("(.+?)",(.+?),\{(.+?)\},\{(.+?)\}\)
即将形如 #0# 的处理成 (.+?) 这样的捕获符
3、规则串处理好后就可用 Regex 进行处理了


为轮子而生 2017-06-01
  • 打赏
  • 举报
回复
取里面的数据,就是这样 Match result = Regex.Match("...."); result.Groups集合就存储了用(.*?)匹配到的各个部分
huanglei_js 2017-05-31
  • 打赏
  • 举报
回复
大神快来吧~~~

111,093

社区成员

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

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

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