Próbuję napisać wyrażenie regularne, aby uzyskać nazwisko osoby.Google Apps Script Regular Expression, aby uzyskać nazwisko osoby
var name = "My Name";
var regExp = new RegExp("\s[a-z]||[A-Z]*");
var lastName = regExp(name);
Logger.log(lastName);
Jeśli dobrze rozumiem \s
powinien znaleźć białą przestrzeń pomiędzy My
i Name
, [a-z]||[A-Z]
dostanie następną literę, następnie *
dostanie resztę. Byłbym wdzięczny za wskazówkę, jeśli ktoś mógłby pomóc.
Dzięki za alternatywy. Bardzo pomocne. Krótkie pytanie na temat regex. Jeśli rozumiem to dobrze: () nawiasy oznaczają najpierw tę ocenę ?: oznacza, że nie rejestruje się w regex \ s to biała przestrzeń Jaki jest cel dodatkowego "\"? – user1682683
'()' in '([a-z] +)' jest właściwie dla [grupowania] (http://www.regular-expressions.info/brackets.html). Pozwala nam to ponownie wykorzystać tę dopasowaną część później. '(? :)' (''() 'są obowiązkowe tutaj) oznacza przeciwieństwo, nie włączaj tej grupy, a zatem po prostu użyj'() 'jako zwykłego'() ', przydatnego do zastosowania operatorów do wielu wyrażeń (np. w '(\ s \ w) +', '(\ s \ w)' byłaby grupą. W '(?: \ s \ w) +' nie jest.). Dodatkowe '\' jest konieczne, ponieważ twoje wyrażenie regularne zostało zadeklarowane przy użyciu konstruktora 'RegExp', i pobiera ciąg jako parametr. Tak więc potrzeba ucieczki od '\' jako '\\'. Daj mi znać, jeśli to jasne! – acdcjunior