求一正则表达式

zdl110110 2015-07-30 04:32:45
现有一个法律条目,如:《国家关于有关问题的公告》(税务总局公告2022年第64号)
求一正则表达式,能够获取《》中的标题和()中的文号。请注意,《》是必须有的,但是后边的括号和里边的内容不一定有
...全文
147 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2015-07-30
  • 打赏
  • 举报
回复
void Main()
{
	string str="《国家关于有关问题的公告1》(税务总局公告2022年第64号)  《国家关于有关问题的公告2》";
	foreach(Match m in Regex.Matches(str,@"(?s)《(.*?)》\s*([((](.*?)[))])?"))
	{
	  Console.WriteLine(m.Groups[1].Value);
	  if(m.Groups[3].Success)
	  	Console.WriteLine(m.Groups[3].Value);
	}
	
	/*
	国家关于有关问题的公告1
	税务总局公告2022年第64号
	国家关于有关问题的公告2
	*/
}
  • 打赏
  • 举报
回复
string patten = @"《(.*?)》[\s\S]*?(?:((.*?)))?";
string txt = @"《国家关于有关问题的公告》(税务总局公告2022年第64号)《国家关于有关没花括号的公告》";
foreach (Match m in Regex.Matches(txt, patten))
{
    Console.WriteLine("《{0}》  ({1})", m.Groups[1].Value, m.Groups[2].Success ? m.Groups[2].Value : "此处无内容");
}
xuzuning 2015-07-30
  • 打赏
  • 举报
回复
            var s = "《国家关于有关问题的公告》(税务总局公告2022年第64号)《国家关于有关问题的公告1》";
            foreach (Match x in Regex.Matches(s, "《(.+?)》.*?(?:((.+?)))?"))
            {
                Console.WriteLine("{0} {1}", x.Groups[1].Value, x.Groups[2].Value);
            }
effun 2015-07-30
  • 打赏
  • 举报
回复
《(.+)》\s*(?:((.+)))?

111,092

社区成员

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

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

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