gpt4 book ai didi

java - 使用正则表达式在匹配字符串之前或末尾插入字符串

转载 作者:行者123 更新时间:2023-11-30 02:19:34 26 4
gpt4 key购买 nike

我有一个要求,其中字符串必须包含 _exact 。我正在使用 Java。

  • 如果字符串末尾有区域设置( _en_ja ),请在区域设置之前添加 _exact。
  • 如果_exact已存在,请勿再次添加。
  • 如果末尾没有区域设置且没有准确的区域设置,请添加 _exact在字符串的末尾。

例如:

  • something -> something_exact
  • something_en -> something_exact_en
  • something_ja -> something_exact_ja
  • something_exact_en -> something_exact_en
  • something_exact -> something_exact

我花了一些时间想出了两个正则表达式,如果在同一个字符串上连续运行,就可以实现。但我不确定它们是否涵盖了所有可能的情况。

^(.*)(?<!_exact)(_(?:en|ja))$

^(.*)(?<!_exact)(?<!_(?:en|ja))$

如果有人能帮我想出 1 个可以完成这项工作的正则表达式,那就太好了!谢谢!

最佳答案

您可以使用此正则表达式:

str = str.replaceAll("^(?!.*_exact(?:_en|_ja)?$)(.+?)(_en|_ja)?$", "$1_exact$2");

RegEx Demo

  • (?!.*_exact(?:_en|_ja)?$) 是一个否定的前瞻,它会跳过以 _exact_exact_en< 结尾的输入_exact_ja

关于java - 使用正则表达式在匹配字符串之前或末尾插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47259925/

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