繁体   English   中英

使用正则表达式替换1次迭代中的所有匹配项

[英]Replace all matches in 1 iteration using regular expressions

是否有可能搜索不同的模式并在1次迭代中替换匹配?

例如,如果我有字符串

"Hey {Apple}, where is {Carrots|Peas|Cucumber}?"

是否有可能在1次迭代中替换花括号内的所有内容,使其看起来像:

"Hey fruit, where is vegetables?

我问的原因是因为我当前的实现首先搜索所有在花括号内只有一个值的模式(1次迭代),然后它在(2次迭代)之后搜索带有3个值的花括号,从而取x - 迭代次数,其中x =“{}”。

谢谢你们,我希望这是有道理的。

这不是真正的正则表达式问题,因为在字符串中进行替换不在正则表达式的范围内。

也就是说,这取决于模式的多样性。 如果你有一组相对较小的模式,那么你可以设置一个从字符串到替换的Map,并让你的输出迭代器查找它获得的每个匹配的替换值。

例如,“Apple”将映射到“Fruit”,“Carrots”将映射到“vegetables”,“Peas”也将映射到“vegetables”等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM