Строки в вашем коде patterns. Они похожи на Регулярные выражения, но немного менее могущественны. Первое совпадение соответствует всей строке, исключая пробелы в начале и конце строки, поэтому ведет себя как Trim
. Второй шаблон используется для поиска первого символа, который не является буквой, цифрой, подчеркиванием (_
) или точкой (.
). Переведено на C#, это может выглядеть так:
public class MyReturnObject {
public MyReturnObject(int currentAddress, int classAddress, string className) {
// ...
}
}
public MyReturnObject ParseStuff(int? classAddress, string className, int currentAddress) {
if(classAddress.HasValue && className != null) {
className = className.Trim();
if(!String.IsNullOrEmpty(className)) {
var r = System.Text.RegularExpressions.Regex.Match(className, @"[^\a\d_.]")?.Index;
if(!r.HasValue || r.Value >= 5) {
return new MyReturnObject(currentAddress, classAddress.Value, className);
}
}
}
return null;
}
Можете ли вы написать код psuedo, что это делает? – Danieboy
Вот в чем вопрос. Я не знаю, что такое «^% s * (.-)% s * $" или "[^% a% d_.]". Я просто знаю, что classaddress является целым числом, а classname - строкой. Затем проверяется имя класса string, но я не знаю, что, как я мало знаю о LUA. – Baldik
@Baldik: Lua не является аббревиатурой; это собственное имя. –