永发信息网

java 开发 xml中使用正则表达式实现一段文本替换。主要是要实现文本对齐和缩进。

答案:2  悬赏:0  手机版
解决时间 2021-04-06 23:33
  • 提问者网友:献世佛
  • 2021-04-06 17:47
比如说我有着一些代码(注意不同缩进):

1.
Tag
HTML Tag

false


2.
Tag
HTML Tag

false


3.
Tag
HTML Tag

false


要统一替换成:
Tag
HTML Tag

false

这个样式包含了上面三个(或者更多),即如果Tag有缩进,下面的要保持一致的缩进,如何实现?
PS:现在以以下格式(一行无空格)对以上三种(或者更多)实现选择:
Tag\R\S\SHTML Tag\R\Rfalse\R
(无\S\S)
要实现替换后以上三种效果为:
1.
Tag
HTML Tag

false

2.
Tag
HTML Tag

false

3.
Tag
HTML Tag

false
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-04-06 18:43
这个可以
但是 要替换几遍
第1次 把空白符号 全部替换成空(这时候全部xml都会在一行上了)
第2次 找到或/>结尾的在尾部增加一个换行
第3次 比较关键,你要用到正则表达式的[环视],也就是你要找到 字样的,而且这段字符的前面必须符合后面符合那么认为这段字符是子标签 就在头部插一个\t制表符 或者你喜欢的N个空格
当然文字描述得比较不细致 细节方面你自己把握吧

然后给你贴一个 环视的 说明 具体自己再查查网页

(?<=Expression) 逆序肯定环视,表示所在位置左侧能够匹配Expression

(?
(?=Expression) 顺序肯定环视,表示所在位置右侧能够匹配Expression

(?!Expression) 顺序否定环视,表示所在位置右侧不能匹配Expression
全部回答
  • 1楼网友:鸽屿
  • 2021-04-06 19:43
你好! 首先说下着两个正则里出现的一些东西。 *表示里零次或多次,?表示一次或一次也没有,+表示一次或多次,$表示行的结尾, \表示对特殊字符的转义(比如\),.表示任意字符。 第一个:.*\\\\(?=.+\\.xml$)表示: 任意字符出现零次或多次,然后跟两个“\”,然后跟“(”出现一次或零次,然后跟一个等号,然后任意字符出现一次或多次,然后跟一个“\”,然后跟一个“.xml ”,然后结束。 匹配例子:d\\(=abc\.xml 第二个: \\.xml$表示: 一个“\”,然后跟一个“.xml ”,然后结束。 匹配例子:sturts.xml 望采纳!谢谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯