Notepad ++正则表达式:查找没有ID的所有输入标签,如果缺少则添加

时间:2011-11-03 13:59:11

标签: jquery regex notepad++

我有许多html文件是使用没有ID的输入标签开发的,并且只有通过javascript识别对象的名称。

使用notepad ++正则表达式查找和替换,任何人都可以帮我找到缺少ID的所​​有输入标签,并插入值与“name”相同的值,留下其余的元素

<input name="MyName" MyAttr="3453" >  

替换为

<input name="MyName" id="MyName" MyAttr="3453" >

想要使用Notepad ++或者您知道任何其他可以进行批量操作的编辑器。

有人可以帮我吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

(<input.*?(?!.*\bid=['"]))(?=>)

替换为:

$1id="MyName"

如果您使用perl或其他支持PCRE表达式的实用程序,则上述正则表达式可以正常工作。但Notepad ++不支持这一点:http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Regular_Expressions

所以我担心这不可能与notepad ++

有关

答案 1 :(得分:1)

FaildDev给出了正确答案:默认的Notepad ++正则表达式引擎无法完成任务。

但是,您可以通过扩展Notepad ++以及指向替代方案的链接,查看this thread有关实现此工作的一些提示。

另外,这里有一个更新的正则表达式,允许你使用名称值作为你的id,我想,你在问什么:

(<input.+?name="(\w+)")((?:(?!id=).)*?>)

替换为:

$1 id="$2"$3

您可以使用REGex TESTER在线试用。请注意,它并不是非常强大,但是如果您知道运行它的HTML是相当一致的,那么您应该可以使用它。

答案 2 :(得分:0)

警告: Regular Expressions are not the best way to find things in HTML files

用于分隔HTML标记的元字符也可以显示在文件的其他位置,并且不可能编写正则表达式来处理所有可能的情况。

除非您的HTML文件非常简单,否则最好使用HTML解析器编写程序。有许多可用于Java和.NET的解析器。