You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot引擎中如何移除字符串内的所有标点符号

GDScript 移除字符串所有标点实现方案

直接用正则全局匹配替换是最省事的写法,不用手动链式写N个replace()逐个删标点:

func process_command(_input: String) -> Array:
    # 初始化正则对象,规则匹配所有Unicode标准下的标点符号
    var reg = RegEx.new()
    reg.compile("\\p{P}")
    # 全局替换所有匹配到的标点为空字符串,第三个参数true代表全局替换
    var clean_text = reg.sub(_input, "", true)
    # 保留你原来的转小写、按空格拆分逻辑
    var words: Array = clean_text.to_lower().split(" ", false)
    return words

方案说明

  • 正则规则里的\p{P}可以覆盖所有语言的常见标点:英文逗号、句号、感叹号、问号、引号,中文顿号、句号、书名号这类都能匹配到,不会漏删
  • 注意你原来的函数返回值标注写的是String,但实际接收的是拆分后的数组,要改成Array不然会触发类型校验报错

如果不想用正则,也可以用循环遍历指定标点列表逐个替换,适合只需要处理固定少量英文标点的场景:

func process_command(_input: String) -> Array:
    var clean_text = _input
    # 把需要移除的标点全部加到下面的数组里即可
    for p in [",", ".", "!", "?", ";", ":", "'", "\"", "(", ")"]:
        clean_text = clean_text.replace(p, "")
    var words: Array = clean_text.to_lower().split(" ", false)
    return words

这个写法的缺点是没列进数组的标点不会被移除,适配性比正则方案差。

内容的提问来源于stack exchange,提问作者Hidden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 08:45:32