正则表达式无法对两个匹配项使用相同的字符

标签 regex preg-replace

在下面的正则表达式中,当它包含在两个斜杠之间时,我想匹配所有“ac”的情况。第一个匹配,但第二个不匹配,因为中间斜杠用于第一个匹配。有什么方法可以强制第二个“ac”也匹配吗?

https://regex101.com/r/WxTFJI/2

下面是我试过的

([\/])ac([\/])

我的测试字符串是

/ac/ac/ 

谢谢

最佳答案

(\/)ac(\/) 与第二个 ac 不匹配的原因是因为第二个 /ac/ 已经被捕获,剩下的是 ac/ 但根据您的问题,您只需要不带斜线的 ac 。如果是这样的话

(?<=\/)ac(?=\/)

关于正则表达式无法对两个匹配项使用相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60162345/

相关文章:

regex - 如何匹配awk中变量中给定的模式?

php - 获取 URL 中正斜杠之间的变量

php - 如何使用 preg_replace 获取替换文本?

php - 在数字字符串的特定位置添加空格

PHP preg_replace 单词但如果单词前面有某些字符则不会

java - 无法理解这个正则表达式如何对输入字符串进行操作?

javascript - 正则表达式通过javascript从字符串中删除重复的字符

java - 用于匹配行数和每行字符数的正则表达式

php - 正则表达式 : Replace only in specific context

regex - 从捕获中排除符号并仅获取所需数据?