javascript - 是否可以使用正则表达式向后查找匹配项?
问题描述
所以我想找到适合正则表达式的2个或更少字符的匹配并将它们推入数组。例如[a-z]{1,2}
在字符串上使用"abcde"
会返回:
["ab", "cd", "e"]
事情[a-z]{1,2}
只是在字符串中搜索“转发”。我想“向后”搜索类似的东西。
["de", "bc", "a"]
是否可以仅使用正则表达式而不使用任何 JavaScript(无论是reverse()
方法还是其他方式)来做到这一点?我正在尝试为使用其内置 GREP 的 InDesign 编写脚本,但如果这里没有人熟悉它的 API,请使用 Notepad++ 的正则表达式引擎提供建议。
**请注意,它必须是["de", "bc", "a"]
,而不是 * ["ed", "cb", "a"]
。
解决方案
您可以使用带有前瞻的正则表达式,它坚持在行尾之前有偶数个字符,然后反转结果。例如,在 JS 中:
const str = 'abcde';
let a = str.match(/[a-z]{1,2}(?=([a-z]{2})*$)/g).reverse();
console.log(a);
推荐阅读
- aspnetboilerplate - 具有多个数据库的多租户(在前一个异步操作完成之前在此上下文上启动了第二个操作)
- php - 图像不显示,如何解决?
- php - 当我使用 3D Secure 测试卡号时,为什么 Stripe 没有给我 Payment Intents requires_action 状态?
- java - 如何从 Firestore 中检索我的 Geopoint 对象
- python - 用 sys.stdout 保存输出,但我想在控制台/终端上显示它
- android - Android Studio - 无法调试应用程序
- appcelerator - 在 WebView 中显示 PDF 文件不起作用 - Titanium
- c# - 在调用 Query 之前在 EntityFramework 上下文中执行 SET 语句
- php - 如何验证是否检查了 reCaptcha
- gradle - 如何修复“缺少分析所需的以下类”