有没有办法简单的正则表达式? [英] Is there a way to simply a regular expression?

查看:87
本文介绍了有没有办法简单的正则表达式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有如下XML:



 <   break     name   =  article_1-1 >  
< h1 >
< span class =code-keyword>< page num = 1 / > 某些标题< / h1 >
< <跨度class =code-leadattribute> bl >
人名撰稿人< / bl >
< h3 >
意见
< / h3 >
< p > 第一段< / p >
< p > 第二段< / p >
< p > 第三段< / p >
< bq >
某些值
< / bq >
< p >
第四段用斜体值
< span class =code-keyword>< / p >
< fig >
< img src = images / img_1-1.jpg width = 1553 height = 1050 alt = / >
< fc >
图片标题
< / fc >
< cr > 某些人的摄影< / cr >
< / fig >
< ; h3 >
CITY,STATE
< / h3 >
< / break >





我希望如下:



 <   break     name   =  article_1-1 >  
< h1 > < page num = 1 / > 某些标题< / h1 >
< bl > 人名撰稿er < / bl >
< h3 > OPINION < / h3 >
< p > 第一段< / p >
< p > 第二段< / p >
< p > 第三段< / p >
< bq > 某些值 < / bq >
< p > 第四段用斜体值 < / p >
< fig > < img src = images / img_1-1.jpg width = 1553 height = 1050 < span class =code-attribute>
alt = / > < fc > 图片标题 < / fc > < cr > ; 一些人的摄影< / cr > < / fig >
< h3 > CITY,STATE < / h3 >
< / break >





我将在稍后阶段删除缩进但我主要关注的是在同一行中打开和关闭XML标签。



我想要一个正则表达式。我尝试了一些东西,但我认为有更好的方法。



请帮忙。



问候



我尝试过的事情:



  string  pattern =  @ (?:(?: (小于\w>)|(小于\w>)|(小于\w ..> |(小于p为H.)|(\ />)))(\ S +)|((小于\ /((标题)|(头)|(中断)|(主体))\w + GT;?!)(\s +)(小于\ /(? (标题)|(头)|(中断)|(主体))\w + GT))|((小于\ / FC>)(\s +)(小于CR>)))< /跨度>; 

string substitution2 = @ $ 1 $ 2 $ 3 $ 8 $ 14 $ 20 $ 22;

解决方案

1


2

3

I have an XML as follows:

<break name="article_1-1">
<h1>
  <page num="1" />Some heading</h1>
<bl>
  Human name Contributing Writer</bl>
<h3>
  OPINION
</h3>
<p>First Paragraph</p>
<p>Second Paragraph</p>
<p>Third Paragraph</p>
<bq>
  Some value
</bq>
<p>
  Fourth Paragraph with italic values
</p>
<fig>
  <img src="images/img_1-1.jpg" width="1553" height="1050" alt="" />
  <fc>
	Image caption
  </fc>
  <cr>PHOTOGRAPHS BY SOME HUMAN</cr>
</fig>
<h3>
  CITY, STATE
</h3>
</break>



I want to make it like:

<break name="article_1-1">
<h1><page num="1" />Some heading</h1>
<bl>Human name Contributing Writer</bl>
<h3>OPINION</h3>
<p>First Paragraph</p>
<p>Second Paragraph</p>
<p>Third Paragraph</p>
<bq>Some value</bq>
<p>Fourth Paragraph with italic values</p>
<fig><img src="images/img_1-1.jpg" width="1553" height="1050" alt="" /><fc>Image caption</fc><cr>PHOTOGRAPHS BY SOME HUMAN</cr></fig>
<h3>CITY, STATE</h3>
</break>



I am removing the indentation at a later stage but my main focus is on bringing the opening and closing XML tags in the same line.

I want a regex for this. I have tried something but I think there is a better way.

Please help.

Regards

What I have tried:

string pattern = @"(?:(?:(<\w.>)|(<\w>)|(<\w..>|(<p>)|(\/>)))(\s+)|((<\/(?!(title)|(head)|(break)|(body))\w+>)(\s+)(<\/(?!(title)|(head)|(break)|(body))\w+>))|((<\/fc>)(\s+)(<cr>)))";

string substitution2 = @"$1$2$3$8$14$20$22";

解决方案

1


2


3


这篇关于有没有办法简单的正则表达式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆