gpt4 book ai didi

php - 正则表达式用字符串替换格式模板,以便结果是格式化字符串

转载 作者:太空狗 更新时间:2023-10-29 23:06:36 25 4
gpt4 key购买 nike

基本上我有以下内容:

  • 输入字符串(例如ABCDEFGHI)
  • 输入模板(例如XXX-XXX-XXX)

我想看到的输出是 ABC-DEF-GHI

我想象它会像 "XXX-XXX-XXX".replace("regex", "ABCDEFGHI");

要注意的是模板是动态的。它可以是 XXX-XXX-XXXXX-XXXX-XXX 或任何其他可以包含任何特殊字符的组合,但要匹配的字符始终是 X.

模板没有长度限制,也没有特殊字符分隔的组数限制。即 XX-X-XXXX-XXX-XXX-XXX-X 都是有效模板,只要 X 的数量与输入字符的数量相同即可。

到目前为止,我有这个:"/^([^a-zA-Z0-9]*X){9}[a-zA-Z0-9]*$/" 其中将验证我的模板。

任何人都可以阐明这一点吗?有没有办法用字符串中的一个字符替换模板中的一个匹配字符?

最佳答案

基本上,您需要将简单模板转换为 REGEX,您可以使用 REGEX 执行此操作:

我。 创建替换:

  • 搜索正则表达式 ^X+(\W)X+(\W)X+$ 替换为 \\1\1\\2\2\\3
  • 这会将 XXX-XXX-XXX 转换为 \1-\2-\3 explained demo here

二。 创建匹配:(两步)

  1. 创建三个组:
    • 搜索正则表达式 ^(X+)\W(X+)\W(X+)$ 替换为 (\1)(\2)(\3) <
    • 这会将 XXX-XXX-XXX 转换为 (XXX)(XXX)(XXX) explained demo here
  2. X替换为点(.作为单个字符匹配),以上操作

现在您可以使用新的匹配字符串 (...)(...)(...) 和新的替换字符串 \1-\2-\3 与输入字符串 ABCDEFGHI 并得到 ABC-DEF-GHI explained demo here

注意:我假设您的模板会将输入字符串分成 3 个部分,中间有 2 个(可变) 特殊字符

更新:

如果模板有可变部分,您必须提前创建匹配替换模式:
使用正则表达式:\W计算 模板中的部分,然后创建您的匹配和替换模式。

关于php - 正则表达式用字符串替换格式模板,以便结果是格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15213040/

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