查找使用正则表达式开始的行

Mic*_*lin 15 regex notepad++

查找行在Notepad ++中使用正则表达式开始

我想从div中的所有jQuery"done"属性中删除4000行HTML文件.

<DIV class=menu done27="1" done26="0"
done9="1" done8="0" done7="1"
done6="0" done4="20">
Run Code Online (Sandbox Code Playgroud)

应替换为:

<DIV class=menu>
Run Code Online (Sandbox Code Playgroud)

这个实验中,我可以使用这个正则表达式:

[ ^]done[0-9]+="[0-9]+"
Run Code Online (Sandbox Code Playgroud)

使用Notepad ++ 5.6.8 Unicode,使用ANSI编码的文件,我将这个正则表达式放在"查找内容"字段中.它只替换以空格开头的5次出现,它将错过从一行开始的2次出现.

如何构造一个正则表达式来删除以关键字开头的HTML元素的所有属性?

Mic*_*lin 13

使用"LINEBREAK"扩展替换"\n"

非常感谢所有人及时回复.根据您的建议,这是我做的:

  • "Notepad ++> View> Show Symbol> Show End Of Line "在每一行显示"CR + LF".
  • "Notepad ++>搜索>查找","搜索模式"="正常",确保"查找内容"="LINEBREAK"一无所获
  • "搜索模式"="扩展","查找内容"="\n\r"只能找到双重中断(CR + LF +空行); "\n\r"什么也没找到; 然而"\n"确实找到了所有的换行符,只有它们.
  • 我的"Towncar.htm"测试文件保存为" Towncar_02.htm "(也以ANSI编码)
  • 在"扩展"下,用"LINEBREAK"替换所有"\n" (注意尾随空格)
  • 在"正则表达式"下,替换每次出现的:

     done[0-9]*="[0-9]*"
    
    Run Code Online (Sandbox Code Playgroud)

(在"完成"之前要小心检查是否有头部空间,
并且没有任何拖曳空间!见下文)

用空字符串

  • 在"扩展"下,用"\n"替换每次出现的"LINEBREAK"(此次"LINEBREAK"后没有尾随空格!)
  • 检查生成的"Towncar.htm"文件(经过几次整形重新格式化)看起来很漂亮,刷新后,它仍然与"Towncar_02.htm"备份相同.

召回和笔记:

  • 这个论坛显然在Chrome 4中运行良好; 但是对于某些浏览器(例如IE6和其他已停产的浏览器),在某些情况下,它会导致一些伪影; 所以,要小心:
  • 即使论坛没有在你的浏览器中显示它,也一个标题空间,即在正则表达式的开头(上面的"完成..."正则表达式)和里面,所以替换以"完成",带有起始空间,因此甚至可以确保不用"撤消"或"美沙酮"改变最终的其他字符串或者其他
  • 同样,即使论坛在您的浏览器中显示一个,在正则表达式的末尾也没有尾随空格!
  • 在正则表达式中,[0-9]匹配1并且只出现1个十进制数字(0-9范围内的字符); 它匹配«0»或«1»或«9»等,但不是«01»或«835»或«»(空字符串)或其中任何一个.
  • *(星号)匹配前一个字符的0或更多倍(这里它匹配空字符串或任何仅由数字组成的字符串)
  • 同上,+(加号)匹配前一个字符的1次或多次(这里它匹配任何字符串,至少1个字符长,仅由数字组成)
    Ref:http://sourceforge.net/apps/mediawiki/notepad-plus /index.php?title=Regular_Expressions#Notepad.2B.2B_regex_syntax

  • 哇!,这是非常好的和详细的答案,令人印象深刻!我对问题和答案都投了赞成票. (2认同)

YOU*_*YOU 0

恐怕 Notepad++ Regex 无法做到这一点

Notepad++ 使用 Scintilla 正则表达式引擎,基于每行,因此无法进行多行搜索/替换。

请注意, \r 和 \n 永远不会匹配,因为在 Scintilla 中,正则表达式搜索是逐行进行的(删除行尾字符)。

引自http://www.scintilla.org/SciTERegEx.html