**关闭。**此题需要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),但他们都说同样的事情,没有一个是工作。我添加了整个函数,以防这也有帮助。
1条答案
按热度按时间7xllpg7q1#
好吧,我想我知道了。TMP文本的末尾似乎有一些不可见的字符,这些字符不会被.Trim()函数删除。当我以纯文本形式查看数据时,单词“gamer”变成了“gamer "。因此,正则表达式与最后一个字符不匹配,结果为false。