Regex 等号后的正则表达式特定字

Regex 等号后的正则表达式特定字,regex,netbeans,Regex,Netbeans,问题是在整个文件中查找并替换word。我试图重命名几个字段,但不编辑这些字段的系统名称。最后,需要找到/替换问题,问题,问题,问题。我正在使用Netbeans(查找并替换regex)打开包含此代码的.properties文件,但可以使用其他内容 需要替换等号右侧的文本。有时右边的单词旁边会有句号,大多数情况下没有。尝试使用regex,因为文件中大约有10000行(这是在不更改字段引用本身的情况下显示系统字段的文本) 要搜索的文本示例: issue.columns.admin.title=Issu

问题是在整个文件中查找并替换word。我试图重命名几个字段,但不编辑这些字段的系统名称。最后,需要找到/替换问题,问题,问题,问题。我正在使用Netbeans(查找并替换regex)打开包含此代码的.properties文件,但可以使用其他内容

需要替换等号右侧的文本。有时右边的单词旁边会有句号,大多数情况下没有。尝试使用regex,因为文件中大约有10000行(这是在不更改字段引用本身的情况下显示系统字段的文本)

要搜索的文本示例:

issue.columns.admin.title=Issue Navigator Default Columns

browseproject.issues.by.status.more=View these issues in the Issue Navigator 
sorted by Status

issue.operations.voting.resolved=You cannot vote or change your vote on 
resolved issues.
在netbeans中使用以下模式,可以获得大约90%的正确率

(?<!([=.[a-z]]))issue(?!([[a-z]]))
(?
但是,它也与“issue.operations.voting.resolved”等字段中的“issue.”相匹配,这意味着查找和替换会由于更改对系统字段的引用而导致问题。是否有方法添加到我已经完成的操作中,使其与出现在等号之后而不是之前的句点相匹配?

您可以使用

(?i)(\G(?!^)|^[^=\n\r]*=)(.*?)\bissues?\b
替换为
$1$2

它匹配:

  • (?i)
    -使模式不区分大小写的内联不区分大小写修饰符
  • (\G(?)| ^[^=\n\r]*=)
    -第1组(使用替换模式中的
    $1
    引用):上一次匹配后的位置(
    \G(?)
    )或一行的开头,该行后跟0+字符,而不是
    =/code>和换行符,然后是
    =/code>
  • (.*)
    -第2组(用替换模式中的
    $2
    表示):任何0+字符,尽可能少,直到第一次出现
  • \bissues?\b
    -一个完整的单词
    问题
    问题

也许您需要该评论的帮助?是的,非常有用。我不确定,但这似乎解决了我的问题:)感谢您链接到一个实时版本,我可以在那里看到它的运行。