我试图用Javascript中的RegEx做一些字符串替换.该场景是一个包含长逗号分隔的数字列表的单行字符串,其中可能存在重复项.
示例字符串是:( 272,2725,2726,272,2727,297,272结尾可能以逗号结尾也可能不以逗号结尾)
在这个例子中,我试图匹配整数272的每次出现.(预期3个匹配)我试图使用的示例正则表达式是: (?:^|,)272(?=$|,)
我遇到的问题是第二和第三场比赛包括我不想要的主要逗号.我很困惑,因为我认为(?:^|,)会匹配,但不会捕获.有人可以为我阐明这个吗?有趣的是,尾随的逗号被排除在结果之外,这就是我想要的.
值得一提的是,如果我使用C#,前缀匹配的语法可以满足我的需求:(?<=^|,)
但是,它似乎在JavaScript中不受支持.
最后,我知道我可以使用字符串拆分,数组操作和重新加入来解决它,但我想学习.
Tim*_*ker 16
改为使用单词边界:
\b272\b
确保只272匹配,但不是2725.
(?:...) 匹配并且不捕获 - 但它匹配的任何东西都将成为整体匹配的一部分. 
一个环视断言像(?=...)不同的是:是否有可能(或不可能)封闭的正则表达式在当前点匹配它只检查,但它不会增加整个比赛.
| 归档时间: | 
 | 
| 查看次数: | 8551 次 | 
| 最近记录: |