我有许多html文件是使用没有ID的输入标签开发的,并且只有通过javascript识别对象的名称。
使用notepad ++正则表达式查找和替换,任何人都可以帮我找到缺少ID的所有输入标签,并插入值与“name”相同的值,留下其余的元素
<input name="MyName" MyAttr="3453" >
替换为
<input name="MyName" id="MyName" MyAttr="3453" >
想要使用Notepad ++或者您知道任何其他可以进行批量操作的编辑器。
有人可以帮我吗?
提前致谢。
答案 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的解析器。