gpt4 book ai didi

java - 如果在 Java 中前面有某个单词,则用于删除部分行的正则表达式

转载 作者:行者123 更新时间:2023-12-04 18:49:52 24 4
gpt4 key购买 nike

有一个属性语言包文件:

label.username=Username:
label.tooltip_html=Please enter your username.</center></html>
label.password=Password:
label.tooltip_html=Please enter your password.</center></html>

如何匹配所有按顺序同时具有“_html”和“”的行,并用除结尾“”之外的同一行替换它们。例如,行:

label.tooltip_html=Please enter your username.</center></html>

应该变成:

label.tooltip_html=Please enter your username.

注意:我想使用 IDE(IntelliJ IDEA、Eclipse、NetBeans...)进行此替换

最佳答案

既然你澄清了这个正则表达式将在 IDE 中使用,我在 Eclipse 中测试了它并且它有效:

FIND:
(_html.*)</center></html>

REPLACE WITH:
$1

确保打开“查找/替换”对话框中的正则表达式 开关。这将匹配任何包含 _html.* 的字符串(其中 .* greedily 匹配 any 不包含换行符的字符串),后跟 </center></html> .它使用 (…) brackets to capture什么匹配到第 1 组,以及 $1在第 1 组捕获的替换替补中。

这有效地删除了 </center></html>如果该字符串前面有 _html在那一行。

如果可以有多个</center></html>在一行中,如果有 _html_,它们都将被删除在他们的左边,那么正则表达式会更复杂,但它可以在一个正则表达式中用 \G continuing anchor 完成。如果绝对需要的话。


变化

更笼统地说,你也可以这样匹配:

(delete)this part only(please)

这现在创建了 2 个捕获组。您可以使用此模式匹配字符串并替换为 $1$2 , 它会有效地删除 this part only , 但前提是它前面有 delete然后是 please .当然,这些子模式可能更复杂。

关于java - 如果在 Java 中前面有某个单词,则用于删除部分行的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3584021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com