C# 正则表达式匹配

春夏_秋冬 2019-07-23 10:08:13
例:#B#span1#E#内容1#B#span1#E##B#span2#E#内容2#B#span2#E##B#span3#E#内容3#B#span3#E#
我要得到纯内容“内容1内容2内容3”,消除#B#XXX#E#
我使用
 string pattern = "#B#(.*)#E#";
result = Regex.Replace((string)result, pattern, "");

他会直接给我匹配最前和最后直接消除完
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
直接正则匹配 得到内容 (?<=(#B#(.*?)#E#))([\s\S]*?)(?=(#B#(.*?)#E#))
春夏_秋冬 2019-07-23
  • 打赏
  • 举报
回复
引用 1 楼 github_36000833 的回复:
在 .* 后面加一个问号,表示不要贪婪匹配。
string pattern = "#B#(.*?)#E#";

https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/quantifiers-in-regular-expressions

感谢。顺便请问一下RichTextBox的selectedText属性,如何让他不选,如果直接设置为""的话,是直接清空,怎么样让他不是复选。
春夏_秋冬 2019-07-23
  • 打赏
  • 举报
回复
引用 1 楼 github_36000833 的回复:
在 .* 后面加一个问号,表示不要贪婪匹配。
string pattern = "#B#(.*?)#E#";

https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/quantifiers-in-regular-expressions

感谢。顺便请问一下RichTextBox的selectedText属性,如何让他不选,如果直接设置为""的话,是直接清空,怎么样让他不是复选。
github_36000833 2019-07-23
  • 打赏
  • 举报
回复
在 .* 后面加一个问号,表示不要贪婪匹配。
string pattern = "#B#(.*?)#E#";

https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/quantifiers-in-regular-expressions

110,539

社区成员

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

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

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