Regex 正则表达式替换记事本中的html空格和前导空格++;

Regex 正则表达式替换记事本中的html空格和前导空格++;,regex,notepad++,Regex,Notepad++,我尝试使用下面的正则表达式来删除html空格和前导空格 Find: \s*([<>])\s* Replace: $1 Find:\s*([])\s* 替换:1美元 但每次我这样做,我的文档中都会出现186处1美元的文字。如蒙协助,将不胜感激 这是我所说的一个例子 这个 原AA 特征: 2柱矩形圆顶帐篷,带有13.4平方英尺的前厅储物空间 耐用、防震、自支撑玻璃纤维框架、环和销/杆口袋组件 2个侧开门门板完全由无see um网构成,以最大限度地增加内部气流 侧壁上的突出通

我尝试使用下面的正则表达式来删除html空格和前导空格

Find:   \s*([<>])\s*

Replace: $1
Find:\s*([])\s*
替换:1美元
但每次我这样做,我的文档中都会出现186处1美元的文字。如蒙协助,将不胜感激

这是我所说的一个例子

这个


原AA

特征:
  • 2柱矩形圆顶帐篷,带有13.4平方英尺的前厅储物空间
  • 耐用、防震、自支撑玻璃纤维框架、环和销/杆口袋组件
  • 2个侧开门门板完全由无see um网构成,以最大限度地增加内部气流
  • 侧壁上的突出通风孔允许在需要时选择额外通风
  • 2个内部储物袋,方便携带基本物品规格:
  • 季节:3
  • 睡觉时间:2
  • 门:2
  • 窗口:2
  • 重量:5磅12盎司
  • 面积:36.5平方英尺
  • 中心高度:3'7.5“
应成为:

<fieldset id="prod_desc"><p>Original AA</p><b>Features:</b><ul><li>2 pole rectangular dome tent with 13.4 sq ft of vestibule storage</li><li>Durable, shockcorded, self-supporting fiberglass frame and ring and pin/pole pocket assembly</li><li>2 side opening door panels are constructed entirely of no see-um mesh to maximize air flow inside</li><li>Poke-out vent in side wall allows the option of additional ventilation when needed</li><li>2 interior storage pockets keep essential items handy Specifications:</li><li>Season: 3</li><li>Sleeps: 2</li><li>Doors: 2</li><li>Windows: 2</li><li>Weight: 5 lbs 12 oz</li><li>Area: 36.5 Sq. Ft.</li><li>Center Height: 3' 7.5&quot;</li></ul></fieldset>
原装AA

特点:
  • 2杆矩形圆顶帐篷,前厅储物空间为13.4平方英尺
  • 耐用、防震、自支撑的玻璃纤维框架、环和销/杆口袋组件
  • 2个侧开门门板完全由无缝网眼构成,以最大限度地提高内部气流
  • 侧墙中的通风口当需要时,允许选择额外的通风设备。
  • 2个内部储物袋方便地存放基本物品规格:
  • 季节:3个睡房:2个门:2个窗:2个重量:5磅12盎司面积:36.5平方英尺。
  • 中心高度:3'7.5”

Notepad++在6.0版之前引入PCRE对查找和替换的支持时,不支持
$1
的反向引用。对于旧版本,请使用
\1
进行反向引用

您应该找到
\s*(]+>)\s*
。从2012年3月发布的Notepad++6.0版开始,仅此一项就适用于您。我试过你原来的正则表达式,它也很管用,这让我很惊讶

以前的版本不能进行多行正则表达式替换。要剥离换行符,请先执行正则表达式替换,然后执行扩展查找(UNIX行结尾):

对于Windows线条端点:

\n
\r\n

将任一大小写替换为空。

您可以使用表达式
\s+\\s+
并替换为$1(或记事本++中的\1)

或者您可以使用这种方法:

  • 首先,匹配
    \s+\

尝试替换为
\1
我会看一个插件,可能是带有适当设置的HTML Tidy。用正则表达式解析HTML会带来麻烦。@capnhud:至少不应该用literal
\1
替换它;请看我的编辑。当我说它不起作用时,我指的是不,它不替换为文本$1,而是删除了每行标记前面的前导空格。因此,我仍然有75行代码,而不是用一行代码来结束所有的html,这就成功了。谢谢你告诉我一些关于notepad++@capnhud的信息:没问题,我自己也是一个老用户:)这个表达式仍然完成了与\s*([])\s*相同的事情,他们没有删除行。听起来notepad++在正则表达式搜索中有一些有趣的行为,可能只是逐行搜索<代码>\s+应该可以工作。你可以一直搜索
\n
,然后用nothing替换。BoltClock告诉我notepad++不做多行正则表达式替换。
\r\n