Flutter/Dart中如何格式化含@[名称](ID)格式的字符串
解决方案
可以使用Dart的正则表达式匹配替换功能,精准移除@[名称](UUID)格式中的UUID部分,只保留名称内容。具体实现如下:
- 匹配规则:用正则表达式
r'@\[([^\]]+)\]\([^)]+\)'定位目标格式,其中([^\]]+)会捕获方括号内的名称文本。 - 替换操作:通过
replaceAllMapped方法将匹配到的内容替换为捕获到的名称。
代码示例
void main() { String originalStr = '''Hello @[Nguyễn Anh Tài](8a66c420-8b21-4ebd-adfc-2ede6128d143) @[Hồng Anh](272276cd-e9ca-4463-b5b6-b254b6770be7) 123 @[Lê Đình Duy](bbc78074-722f-46d5-a29c-dff304d4ef8a) 456 @[Trần Thị Lưu](15c5f175-0205-42a6-b8a0-6b78cf89c5f3)'''; RegExp mentionRegex = RegExp(r'@\[([^\]]+)\]\([^)]+\)'); String result = originalStr.replaceAllMapped(mentionRegex, (match) { return match.group(1)!; }); print(result); }
输出结果
Hello Nguyễn Anh Tài Hồng Anh 123 Lê Đình Duy 456 Trần Thị Lưu
内容的提问来源于stack exchange,提问作者nBinh
相关产品推荐
相关产品推荐

