Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Lua用_a-zA-Z替换动态随机字符串的第一个数字字符_String_Lua - Fatal编程技术网

String Lua用_a-zA-Z替换动态随机字符串的第一个数字字符

String Lua用_a-zA-Z替换动态随机字符串的第一个数字字符,string,lua,String,Lua,所以我有一个非常动态的字符串,它将由字母、数字和下划线组成[a-Za-z0-9] 如果字符串的第一个字符是数字,我将尝试删除和/或仅用非数字字符[a-zA-Z_]替换第一个数字字符 例如: local string = "5fLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty" string:gsub("^([0-9]{1})", "_") 输出将是以下内容之一 _fLkQZ73ziBzHMTgaoSBfDb9q

所以我有一个非常动态的字符串,它将由字母、数字和下划线组成[a-Za-z0-9]

如果字符串的第一个字符是数字,我将尝试删除和/或仅用非数字字符[a-zA-Z_]替换第一个数字字符

例如:

local string = "5fLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty"
string:gsub("^([0-9]{1})", "_")
输出将是以下内容之一

_fLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty --underscore
AfLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty --Uppercase
afLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty --Lowercase
fLkQZ73ziBzHMTgaoSBfDb9qa1q3qdqBGwJ4Mw1gkY782VhVr8Itmheq03mPy_OIHty --removed
是的,这只会替换字符串开头的数字。它只会替换一个这样的角色。模式前面的^确保模式仅在字符串开头时匹配。和%d只匹配一个单位数字符


如果没有匹配项,则gsub返回未修改的字符串。

该主题的可能重复项为“无帮助”不会删除第一个数字字符^{1}。正如我的标题所说,Lua模式不支持{n}修饰符。要删除:str=str:gsub^%d。替换为A:str=str:gsub^%d,A.@EgorSkriptunoff虽然您的代码有帮助,但它并不是完美的我的字符串bl_fLkQZ_uzibzhmtgaosbfdb_qa_qdqB,正如您现在看到的,完全不包含任何数值,因为我只想在第一个字符是数值的情况下删除该字符,在保持字符串的其余部分不变的情况下,这是可能的吗?
local str = ...
str = str:gsub("^%d", "_")