javascript - 如何匹配 Y 之后的所有 X?
问题描述
我有这个字符串:
A1xB2xC3yD4xE5xF6x
我想匹配(然后替换)每一个x
,但只匹配y
. 预期匹配:x
, x
, x
. 我试过这个:
(?<=y)x
但它不起作用。假设它匹配x
前面的y
,但只有 IMMEDIATELY 前面y
。
所以我尝试了这个:
(?<=.*y.*)x
但显然*
,甚至+
符号都无效,如果在该组内使用会引发错误。
有什么办法可以做我想做的事吗?
解决方案不能是“最后 3 个x
”,因为x
's after的数量y
是未知的。
解决方案
现代 Javascript 正则表达式引擎允许对可变长度进行后向断言,因此查看您的问题,这个正则表达式应该适合您:
/(?<=y[^y]*)x/gi
此正则表达式在匹配 a 之前断言存在y
后跟 0 个或多个非字符。y
x
推荐阅读
- python - 如何从数据库中读取坐标并使用 django 在地图上映射指针
- javascript - 通过其父类使用 JavaScript 获取子输入的值
- postgresql - 你能描述一下这个FlameGraph(Postgres,RHEL7)为什么CPU等待和阻塞进程吗
- optaplanner - OptaPlanner 是否支持获取计算进度?
- angular - 在使用 ng 命令在谷歌驱动器中使用 angular cli 创建 angular 项目时
- typescript - Phaser 3 图像重叠
- amazon-web-services - Buildspec 文件发布构建存储构建号并在运行时访问它
- rust - Rayon 的并行迭代器与 Rust 中的 ureq 阻塞 HTTP 之间的交互是什么?
- rust - 不阻塞地读取 Childstdout
- android - Matomo Harmony/华为操作系统