[英]Insert a string before a matching string or at the end using regex
我有一個字符串必須包含_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
我花了一些時間,想出了2個正則表達式,如果在同一字符串上連續運行,則有可能。 我不確定它們是否涵蓋所有可能的情況。
^(.*)(?<!_exact)(_(?:en|ja))$
^(.*)(?<!_exact)(?<!_(?:en|ja))$
如果有人可以幫我提出一個能完成這項工作的正則表達式,那就太好了! 謝謝!
您可以使用此正則表達式:
str = str.replaceAll("^(?!.*_exact(?:_en|_ja)?$)(.+?)(_en|_ja)?$", "$1_exact$2");
(?!.*_exact(?:_en|_ja)?$)
是一個否定的超前行為,它會跳過以_exact
或_exact_en
或_exact_ja
結尾的輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.