gpt4 book ai didi

regex - Grails-从外部属性文件中读取正则表达式

转载 作者:行者123 更新时间:2023-12-02 14:50:39 25 4
gpt4 key购买 nike

我通过添加以下Config.groovy文件来添加外部属性文件:

environments {
production {
grails.config.locations = ["file:./application-config.properties"]
}
}

这适用于某些值(例如更改使用的URL),但是我发现正则表达式将无法按预期工作。例如,如果我在Config.groovy中具有以下内容:
regexes {
deviceId = ~/\b[1-9][0-9]{6,7}\b/
}

搜索“1234567”将被解析为deviceId。

但是,如果我添加
regexes.deviceId = ~/\b[1-9][0-9]{2,3}\b/

到我的application-config.properties文件,它发现有一个更改,因为“1234567”不再被识别为deviceId,而“123”则未被识别为deviceId。 (我已经使用在线工具检查了我的正则表达式以检查其是否有效)

为什么是这样?
是否可以在我的application-config.properties文件中包含正则表达式? (我也尝试过将正则表达式放在引号中)

最佳答案

我不确定您是否可以在属性文件中使用正则表达式运算符~//。 (我不知道为什么不应该这样做!)

但是您可以定义一个正则表达式字符串并进行显式编译:

regexes.deviceId = "\\b[1-9][0-9]{2,3}\\b"

确保使用 \\而不是 \,因为Java / Groovy字符串使用 \作为诸如 \n ...之类的基音字符的开头。

在您的代码中使用
var devIdRegEx = Pattern.compile([loaded regexes.deviceId property]);
...

关于regex - Grails-从外部属性文件中读取正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879000/

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