regex - AEM 调度程序中的正则表达式格式不同
问题描述
当我们创建具有正斜杠的正则表达式时,我们需要在正斜杠之前放置一个反斜杠,因为正斜杠是未转义的分隔符。例如,如果我希望我的正则表达式匹配 /content/att,那么我需要像这样放置正则表达式
/content\/att
。这也有效。
但是当我们在 AEM 中添加调度程序规则以允许 url 路径时,未转义的分隔符不需要反斜杠。我很感激有人可以帮助我理解这一点,我的意思是为什么我们在编写正则表达式时需要反斜杠,但在调度程序规则的 url 路径中使用相同的正则表达式时不需要。
在 dispatcher 中,查看 url 路径 - /att 之前没有反斜杠
/type "allow"
/url "/content/att"
/extension '(gif)'
}
解决方案
我不熟悉 AEM Dispatcher,但这里是您的正则表达式问题的通用答案:
那是因为"/content/att"
是正则表达式的字符串表示。实际的正则表达式是"/\/content\/att/"
. 请注意,字符串中的初始斜杠也被转义了。
这是一个示例:这两个 JavaScript 正则表达式是相同的:
let regex1 = /^\/content\/att/;
let regex2 = new RegExp( "^/content/att" );
推荐阅读
- java - 是否可以在 Java 中构造一个允许 flatMap 返回不同的 Left 值的 Either?
- c - sh: 1: /my_path/ompi-1.1/compiler/ompi: 运行 C 程序时权限被拒绝
- python - ValueError: as_list() 未在未知的 TensorShape 上定义
- python - Python 3:资源警告:未关闭的文件 <_io.TextIOWrapper name='PATH_OF_FILE'
- css - 将输入类型日期更改为图标
- java - Android Keystore - 无效密钥异常 - 首选提供者不支持密钥(仅在模拟器上)
- multithreading - 如何使用 RxJava 让多个线程按顺序运行
- postgresql - statdard包中的非标准导入github.com/lib/pq
- android - 在改造中发布 JsonArray 时,会在 json 中自动添加一些 okhttp 内容
- spring - Spring:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在附近使用的正确语法