gpt4 book ai didi

regex - Dart 在 replaceAll 中捕获括号

转载 作者:行者123 更新时间:2023-12-03 02:54:17 25 4
gpt4 key购买 nike

我正在开发一个 Dart 程序,它将解析 XML 文件中的数据。不幸的是,该文件有点乱,所以我在它上面做了大量的正则表达式以使其达到体面的形状。由于 Dart 和 Javascript 一样,没有后视功能,我一直在尝试使用捕获括号和方法来 mimic lookbehind ,无济于事。 Dart 根本不喜欢它的语法,只是告诉我 function未为 myClass 定义

我的 XML 文件由以下格式的字符串组成:

<items>Chicken Sauces/ Creamy Curried Chicken Salad w/ Wild Rice</items>

完成后,我希望该字符串如下所示:
<items>Chicken Sauces| Creamy Curried Chicken Salad w/ Wild Rice</items>

我试过在字符串上调用它: .replaceAll(new RegExp(r'(\w\s*)/(?=\s*\w)'),"$0|$1")但这给了我错误,说 $0 的“需要一个标识符”和 $1 .如果有人能就如何正确使用捕获括号或在 Dart 中模拟后视的方法以及当前的前瞻提供一些指导,我将不胜感激!

最佳答案

假设您的正则表达式是正确的,您应该使用 String.replaceAllMapped :.replaceAllMapped(new RegExp(r'(\w\s*)/(?=\s*\w)'), (match) => "${match[0]}|${match[1]}")您可能还对 String.splitMapJoin 感兴趣
Compeek 已经指出正则表达式可能不会做你想要的,但是。

关于regex - Dart 在 replaceAll 中捕获括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com