具有多个匹配的全局正则表达式,其中分隔符应该在多个匹配中共享
首先,对于不清楚的标题感到抱歉,很难描述(并且出于同样的原因找到现有的解决方案)。具有多个匹配的全局正则表达式,其中分隔符应该在多个匹配中共享
我在JavaScript中使用这个表达式,在一个字符串来收集数字:
/(?:^|[^d])([d]+)(?:$|[^d])/g
执行它"5358..2145"
回报2场比赛,其中子匹配是"5358"
和"2145"
但是,如果我用它"5358.2145"
,我只接收1场:"5358"
所以,我的理解是这样:
- 第一场比赛被找到(
"5358."
),所以点云在第一场比赛 - 我想为第二场比赛是什么,因为这点已经属于第一场比赛 不与字符串的开始或点之前
如何更改我的模式以查找用1个非数字字符分隔的所有数字?
Alsatian
回答
使用在末端具有负先行:
/(?:^|D)(d+)(?!d)/g
参见regex demo
的模式匹配:
(?:^|D)
- 串的任一开始(^
)或任何非数字char(D
)(d+)
- 第1组:一个或多个数字(?!d)
- 如果当前位置右侧有一个数字,则负值预测失败。
非常好,我不知道lookadhead的概念。谢谢。 –
你可以看到[我的另一个答案](http://stackoverflow.com/questions/31201690/find-word-not-followed-by/31201710#31201710),看看负向预测如何工作。 –
具有多个匹配的全局正则表达式,其中分隔符应该在多个匹配中共享
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击