lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Here is what I have presently:

( "componentWithName" ):gsub( "%u?%l+", print )

> component
> With
> Name

However this doesn't quite cover all potential cases, specially acronyms (e.g. "componentWithURL"):
Such limitations are inherent to "camel case" (aka "inner-caps"). For 
example, there is no way to parse "componentWithURLAndParameters" with 
a simple regular expression. The solution is to use a limited 
dictionary containing "URL" and any other problematic tokens. Then you 
parse in two phases:
1. Parse dictionary terms:
	"componentWithURLAndParameters" ->

	> "componentWith"
	> "URL" (flag as dictionary term)
	> "AndParameters"

2. Parse "camel" cases for each resulting token into a secondary buffer, passing dictionary terms unchanged:
	> "component
	> "With"
	> "URL"
	> "And"
	> "Parameters"

Cheers,

David Gish
Senior Systems Engineer
Aspyr Media
www.aspyr.com