[Closed] Regular Expressions … HELP
http://regular-expressions.com/
http://www.tcl.tk/man/tcl8.5/tutorial/Tcl20.html
I am not sure why I cannot find regular expressions in Max. I can’t imagine a scripting language that doesn’t have it, but I hope I am wrong. Please someone show me I am wrong… please !!!
I posted some links explaining regExp’s in hopes that you guys can benefit from them (if they are in there), as they are Oh-So-Powerfull.
Thanks guys,
Chris
Start imagining
There is limited pattern matching for strings (the method is called matchPattern someString pattern:“somepattern”), but it is not a full-featured regex implementation. There are enough parsing methods to do what you want in MAXScript though, so this hasn’t stopped anyone from coding in Max.
Since MAXScript was developed to work mostly inside of (surprise!) Max, it does not provide some features general scripting languages used at OS shell level provide. At the same time it provides Max-related methods from the field of 3D math and graphics other scripting languages do not necessarily need.
Huh? Really? I must have missed something…
Incidently, a Frantic Films extension which ships with the free Amaretto bridge to NVidia’s Gelato renderer provides full regex support. I will investigate what the exact interface name and methods were tomorrow…
Thanks for the quick responses.
Looking forward to your post on the extension.
Chris
Ok, the interface is called Frantic and is exposed by the Amaretto plugin which ships (in Beta) with the free Gelato renderer by nVidia.
Interface: Frantic
Properties:
.Version : value : Read
.MetersConversionFactor : float : Read
Methods:
<value>GetLocalBBox <node>Node
<value>GetObjTMAfterWSM <node>Node
<value>GetMaterialIds <mesh>Mesh
<void>ResetProfilers()
<void>EnterProfileSection <value>SectionName
<void>ExitProfileSection <value>SectionName
<void>PrintProfilers <value>Title
<void>WriteProfilersToFile <value>FileName <value>Title
<value>ReplaceSequenceNumber <value>FileName <integer>SequenceNumber
<value>AddSequenceNumber <value>FileName <integer>SequenceNumber
<value>AddBeforeSequenceNumber <value>FileName <value>StringToAdd
<value>LowerCase <value>String
<value>UpperCase <value>String
<value>StrReplace <value>String <value>Pattern <value>Replacement
<value>RegExSearch <value>String <value>RegEx
<value>GetEscapedString <value>String
<integer>GetCRC32 <value>String
<value>GetEnv <value>VariableName
<value>SubstituteEnvVars <value>String
<value>EnvVarToUnix <value>String
<value>EnvVarToDos <value>String
<value>SplitSearchPath <value>SearchPath
<value>FindFileInSearchPath <value>FileName <value>SearchPath
<value>ToUnixStyleSearchPath <value>String
<void>CheckMeshForProblems <mesh>Mesh
<float>GetFaceArea <mesh>Mesh <integer>FaceIndex
<point3>GetVertexInFaceNormal <mesh>Mesh <integer>FaceIndex <integer>VertexSubIndex
<value>RandomPointOnMesh <mesh>Mesh
Examples:
Frantic.RegExSearch “a;lsjaeoi5r” “^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$”
RESULT:
undefined – not an email
Frantic.RegExSearch “abc@def.com” “^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$”
RESULT:
#() – matches the pattern completely
Frantic.RegExSearch “abc@def.com” “^([a-zA-Z0-9._%-]+)@([a-zA-Z0-9.-]+.[a-zA-Z]{2,4})$”
RESULT:
#(“abc”, “def.com”) –sub-patterns matched
Frantic.RegExSearch “@abc@def.com” “^([a-zA-Z0-9._%-]+)@([a-zA-Z0-9.-]+.[a-zA-Z]{2,4})$”
RESULT:
undefined –does not match, since we are checking from beginning ^ to end $
Frantic.RegExSearch “@abc@def.com” “([a-zA-Z0-9._%-]+)@([a-zA-Z0-9.-]+.[a-zA-Z]{2,4})”
RESULT:
#(“abc”, “def.com”) –this matches, because we don’t check from beginning to end