我正在处理一些JSF代码,需要在项目中的所有stlyeClass
中插入<h:commandButton>
。问题是有很多commandButtons,我不想手动完成。另一个问题是一些commandButtons已经包含了styleClass,而有些则没有。因此我需要一个正则表达式来查找不包含styleClass
的commandButton,所以在编辑其余部分之前我首先可以在那里插入我的代码。希望我的解释有意义。请尝试回答问题而不是解决方法。
非常感谢!
答案 0 :(得分:0)
假设您正在讨论Eclipse搜索和替换功能,以下正则表达式应该适合您。它会增加一些不必要的&#34;在某些情况下的空格,但这些可以通过简单的让eclipse再次自动格式化整个文件来删除。
(选择项目根目录并按CTRL+Shift+F
选择最懒的选项 - 或者忽略空格。)
要验证它是否与所有命令按钮匹配:
<h:commandButton
上运行文件搜索,记下该号码。注意:您的styleClass-Attributes不得包含"
字符!
正则表达式:
<h:commandButton([^>]+(?=styleClass)|)(?:styleClass="([^"]+)")?([^>]*?)(\/?>)
替换(myNewStyleClassForEveryCommandButton
应该是您想要设置的样式):
<h:commandButton$1 styleClass="myNewStyleClassForEveryCommandButton $2"$3$4
转换以下示例:
<h:commandButton />
<h:commandButton>
</h:commandButton>
<h:commandButton styleClass="something" />
<h:commandButton styleClass="something">
</h:commandButton>
<h:commandButton attr="value" styleClass="something more" />
<h:commandButton attr="value" styleClass="something more">
</h:commandButton>
<h:commandButton attr="value" styleClass="something" anotherAttr="somethingElse"/>
<h:commandButton
attr="value"
styleClass="something"
anotherAttr="somethingElse">
</h:commandButton>
进入这个结果:
<h:commandButton styleClass="myNewStyleClassForEveryCommandButton " />
<h:commandButton styleClass="myNewStyleClassForEveryCommandButton ">
</h:commandButton>
<h:commandButton styleClass="myNewStyleClassForEveryCommandButton something" />
<h:commandButton styleClass="myNewStyleClassForEveryCommandButton something">
</h:commandButton>
<h:commandButton attr="value" styleClass="myNewStyleClassForEveryCommandButton something more" />
<h:commandButton attr="value" styleClass="myNewStyleClassForEveryCommandButton something more">
</h:commandButton>
<h:commandButton attr="value" styleClass="myNewStyleClassForEveryCommandButton something" anotherAttr="somethingElse"/>
<h:commandButton
attr="value"
styleClass="myNewStyleClassForEveryCommandButton something"
anotherAttr="somethingElse">
</h:commandButton>
https://regex101.com/r/tD0dU9/7
在尝试此之前提交并推送:-)