0

我有一些字符串,我想在某些点插入一些换行符。

我想出了一些后勤工作,但总的来说,我似乎无法解决这个问题,可能是因为我对正则表达式的经验有限。

基本上,我有一长串的 XML 标记,它们都在一行上。我想在某些点添加换行符以使数据更加格式化并且看起来更好。我正在使用CodeMirror在网页上显示此数据,但由于某种原因,它全部位于第 1 行。

所以我需要从这样的事情开始:

<Sample><Name></Name><PhoneNumber><AreaCode></AreaCode><Number></Number></PhoneNumber></Sample>

对于这样的事情:

<Sample>
  <Name></Name>
  <PhoneNumber>
    <AreaCode></AreaCode>
    <Number></Number>
  </PhoneNumber>
</Sample>

CodeMirror 将处理其余的格式设置,我需要做的就是使用正则表达式或某种循环在正确的位置插入换行符。标签将会或可以改变,所以我猜必须使用正则表达式。

我已经成功地用 \n 和 插入换行符,但似乎无法让正则表达式检测到正确的位置。

任何帮助将不胜感激。谢谢。

更新 我忽略了这一点,但括号实际上是作为 < 和 > 发送的

所以示例标签看起来像:

&lt;PhoneNumber&gt;

或者

&lt;/PhoneNumber&gt;

所以基本上需要\n在每个&gt;结束标签或包含子标签的开始标签之后插入一个。

4

2 回答 2

1

这里有龙。

我想向您指出一个不久前回答的非常相似的问题,它很好地解释了为什么您不应该尝试自己解析 XML,除非您真的知道自己在做什么。

如果您想获得漂亮的换行符之类的东西,请使用 XML 反序列化器。

于 2012-06-04T16:16:42.030 回答
0

试试这个regex模式:

  >\s*<(?!/)

替换字符串:>\n<

更新:

&gt;\s*&lt;(?!/)
于 2012-06-04T16:16:12.337 回答