Parsing names with an optional middle name.
ID: 240
See: Optional parts
using uCalcSoftware;
var uc = new uCalc();
var t = uc.NewTransformer();
// Matches "First Last" OR "First Middle Last"
// Constraint Note: We use {name:1} to ensure each variable captures exactly one token.
// Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend
// a space only if the middle name exists.
t.FromTo("Name: {first:1} [{middle:1}] {last:1}",
"User: {last}, {first}{middle: {middle}}");
Console.WriteLine(t.Transform("Name: John Doe"));
Console.WriteLine(t.Transform("Name: John Quincy Adams"));
User: Doe, John
User: Adams, John Quincy using uCalcSoftware; var uc = new uCalc(); var t = uc.NewTransformer(); // Matches "First Last" OR "First Middle Last" // Constraint Note: We use {name:1} to ensure each variable captures exactly one token. // Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend // a space only if the middle name exists. t.FromTo("Name: {first:1} [{middle:1}] {last:1}", "User: {last}, {first}{middle: {middle}}"); Console.WriteLine(t.Transform("Name: John Doe")); Console.WriteLine(t.Transform("Name: John Quincy Adams"));
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
int main() {
uCalc uc;
auto t = uc.NewTransformer();
// Matches "First Last" OR "First Middle Last"
// Constraint Note: We use {name:1} to ensure each variable captures exactly one token.
// Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend
// a space only if the middle name exists.
t.FromTo("Name: {first:1} [{middle:1}] {last:1}",
"User: {last}, {first}{middle: {middle}}");
cout << t.Transform("Name: John Doe") << endl;
cout << t.Transform("Name: John Quincy Adams") << endl;
}
User: Doe, John
User: Adams, John Quincy #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; auto t = uc.NewTransformer(); // Matches "First Last" OR "First Middle Last" // Constraint Note: We use {name:1} to ensure each variable captures exactly one token. // Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend // a space only if the middle name exists. t.FromTo("Name: {first:1} [{middle:1}] {last:1}", "User: {last}, {first}{middle: {middle}}"); cout << t.Transform("Name: John Doe") << endl; cout << t.Transform("Name: John Quincy Adams") << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
Dim t = uc.NewTransformer()
'// Matches "First Last" OR "First Middle Last"
'// Constraint Note: We use {name:1} to ensure each variable captures exactly one token.
'// Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend
'// a space only if the middle name exists.
t.FromTo("Name: {first:1} [{middle:1}] {last:1}",
"User: {last}, {first}{middle: {middle}}")
Console.WriteLine(t.Transform("Name: John Doe"))
Console.WriteLine(t.Transform("Name: John Quincy Adams"))
End Sub
End Module
User: Doe, John
User: Adams, John Quincy Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() Dim t = uc.NewTransformer() '// Matches "First Last" OR "First Middle Last" '// Constraint Note: We use {name:1} to ensure each variable captures exactly one token. '// Replacement Note: We use {middle: {middle}} instead of just {middle} to prepend '// a space only if the middle name exists. t.FromTo("Name: {first:1} [{middle:1}] {last:1}", "User: {last}, {first}{middle: {middle}}") Console.WriteLine(t.Transform("Name: John Doe")) Console.WriteLine(t.Transform("Name: John Quincy Adams")) End Sub End Module