用于匹配字符串中 space 的正则表达式

Regex for matching with space in a string

我需要在一些文本前面附加一个前缀,在文本和前缀之间添加 space。

例如: “示例文本”将变为 “[外部] 示例文本”。

如果前缀已经包含在文本中(case-insensitive),那么我需要将前缀替换为全部大写。

例如,如果文本是:“[外部]样本”或“[外部]样本”或“[外部]样本”:

在所有情况下,我都需要在前缀和示例文本之间添加 space 的“[EXTERNAL] 示例”。

    private static final String TITLE_REGEX_PATTERN = "(?i)"+ Pattern.quote("[external]");
    private static final String EXTERNAL_TITLE_PREFIX = "[EXTERNAL] ";



private String appendPrefixToTitle(String title) {
        if (!titleContainsPrefix(title)) {
            return "[EXTERNAL] " + title;
        } else {
            return title.replaceFirst(TITLE_REGEX_PATTERN, EXTERNAL_TITLE_PREFIX);
        }
    }

private boolean titleContainsPrefix(String title) {
        return StringUtils.beginsWithIgnoreCase(title, EXTERNAL_TITLE_PREFIX.trim());
    }

如果标题已经包含正确的格式,这样做会额外添加一个 space。给我建议一个更好的方法而不拆分 hte 输入。

尝试用这段代码替换文本开头可能出现的[External]

String text = "[External]Sample";
text = Pattern.compile("(^\[EXTERNAL\]\s*)?", Pattern.CASE_INSENSITIVE).matcher(text).replaceFirst("[EXTERNAL] ");