Regex不会检测到textmeshpro文本[关闭]

hs1rzwqc  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(295)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
3天前关闭。
Improve this question
我是正则表达式的新手,我正试图在我的Unity游戏中实现一个正则表达式,以检测玩家的名字是否只使用小写字母。但是,无论我怎么尝试,它都不会接受来自textmeshpro gameobject的任何完全小写的字符串。

public TextMeshProUGUI nameHolder;
//...Other functions...
public async void UpdateHighScore()
{
    name = "test";//works fine
name = nameHolder.text.Trim(); //does not work

    if (name.Length <= 7 && name.Length > 0)
    {
        if (Regex.IsMatch(name, "^[a-z]{1,7}$"))
        {
        AmazonS3Client s3Client = new AmazonS3Client(accessKey, secretKey, new AmazonS3Config
        {
            RegionEndpoint = RegionEndpoint.USWest1,
            ServiceURL = "https://s3-us-west-1.amazonaws.com"
        });

        PutObjectRequest putRequest = new PutObjectRequest
        {
            BucketName = bucketName,
            Key = filePath,
            ContentBody = Highscore.ToString() + "," + name
        };

        try
        {
            await s3Client.PutObjectAsync(putRequest);
            Debug.Log("Highscore updated and uploaded successfully!");
                    text.text = "Name entered!";
        }
        catch (AmazonS3Exception e)
        {
            Debug.LogError("Error updating highscore: " + e.Message);
        }
    } else {
            text.text = "Only use lowercase letters";
              Debug.Log(name);
    }
} else {
    Debug.Log(name.Length);
    text.text = "Name to long or short";
}
    }
}

我在像regex 101这样的网站上测试了正则表达式,它工作正常。我也试着换到

str.All(char.IsLower);

但我也有同样的问题。我问过chatGPT,谷歌巴德,和Bing聊天(GPT-4),但他们都说同样的事情,没有一个是工作。我添加了整个函数,以防这也有帮助。

7xllpg7q

7xllpg7q1#

好吧,我想我知道了。TMP文本的末尾似乎有一些不可见的字符,这些字符不会被.Trim()函数删除。当我以纯文本形式查看数据时,单词“gamer”变成了“gamer "。因此,正则表达式与最后一个字符不匹配,结果为false。

相关问题