import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\s(?P<ValueType>\\w+)\\s(?P<DataType>\\w+)?\\s?Instance[\\.\\:](?P<Inheritance>\\w+) ?(?P<TagsOrArguments>.+)?";
final String string = "Class Instance [notbrowsable]\n"
+ " Property bool Instance.Archivable\n"
+ " Property string Instance.ClassName [readonly]\n"
+ " Property int Instance.DataCost [readonly] [RobloxPlaceSecurity]\n"
+ " Property string Instance.Name\n"
+ " Property Object Instance.Parent\n"
+ " Property bool Instance.RobloxLocked [PluginSecurity]\n"
+ " Property bool Instance.archivable [hidden]\n"
+ " Property string Instance.className [deprecated] [readonly]\n"
+ " Function void Instance:ClearAllChildren()\n"
+ " Function Instance Instance:Clone()\n"
+ " Function void Instance:Destroy()\n"
+ " Function Instance Instance:FindFirstChild(string name, bool recursive = false)\n"
+ " Function Objects Instance:GetChildren()\n"
+ " Function string Instance:GetDebugId(int scopeLength = 4) [notbrowsable] [PluginSecurity]\n"
+ " Function string Instance:GetFullName()\n"
+ " Function bool Instance:IsA(string className)\n"
+ " Function bool Instance:IsAncestorOf(Instance descendant)\n"
+ " Function bool Instance:IsDescendantOf(Instance ancestor)\n"
+ " Function void Instance:Remove() [deprecated]\n"
+ " Function Objects Instance:children() [deprecated]\n"
+ " Function Instance Instance:clone() [deprecated]\n"
+ " Function void Instance:destroy() [deprecated]\n"
+ " Function Instance Instance:findFirstChild(string name, bool recursive = false) [deprecated]\n"
+ " Function Objects Instance:getChildren() [deprecated]\n"
+ " Function bool Instance:isA(string className) [deprecated]\n"
+ " Function bool Instance:isDescendantOf(Instance ancestor) [deprecated]\n"
+ " Function void Instance:remove() [deprecated]\n"
+ " YieldFunction Instance Instance:WaitForChild(string childName)\n"
+ " Event Instance.AncestryChanged(Instance child, Instance parent)\n"
+ " Event Instance.Changed(Property property)\n"
+ " Event Instance.ChildAdded(Instance child)\n"
+ " Event Instance.ChildRemoved(Instance child)\n"
+ " Event Instance.DescendantAdded(Instance descendant)\n"
+ " Event Instance.DescendantRemoving(Instance descendant)\n"
+ " Event Instance.childAdded(Instance child) [deprecated]\n"
+ "Class Accoutrement : Instance\n"
+ " Property Vector3 Accoutrement.AttachmentForward\n"
+ " Property CoordinateFrame Accoutrement.AttachmentPoint\n"
+ " Property Vector3 Accoutrement.AttachmentPos\n"
+ " Property Vector3 Accoutrement.AttachmentRight\n"
+ " Property Vector3 Accoutrement.AttachmentUp\n"
+ "Class Hat : Accoutrement\n"
+ "Class AdService : Instance [notCreatable]\n"
+ " Function void AdService:ShowVideoAd()\n"
+ " Event AdService.VideoAdClosed()\n"
+ "Class AdvancedDragger : Instance\n"
+ "Class Animation : Instance\n"
+ " Property Content Animation.AnimationId\n"
+ "Class AnimationController : Instance\n"
+ " Function Array AnimationController:GetPlayingAnimationTracks()\n"
+ " Function Instance AnimationController:LoadAnimation(Instance animation)\n"
+ " Event AnimationController.AnimationPlayed(Instance animationTrack)\n"
+ "Class AnimationTrack : Instance\n"
+ " Property Object AnimationTrack.Animation [readonly]\n"
+ " Property bool AnimationTrack.IsPlaying [readonly]\n"
+ " Property float AnimationTrack.Length [readonly]\n"
+ " Property AnimationPriority AnimationTrack.Priority\n"
+ " Property float AnimationTrack.TimePosition\n"
+ " Function void AnimationTrack:AdjustSpeed(float speed = 1)\n"
+ " Function void AnimationTrack:AdjustWeight(float weight = 1, float fadeTime = 0.100000001)\n"
+ " Function double AnimationTrack:GetTimeOfKeyframe(string keyframeName)\n"
+ " Function void AnimationTrack:Play(float fadeTime = 0.100000001, float weight = 1, float speed = 1)\n"
+ " Function void AnimationTrack:Stop(float fadeTime = 0.100000001)\n"
+ " Event AnimationTrack.KeyframeReached(string keyframeName)\n"
+ " Event AnimationTrack.Stopped() [deprecated]\n"
+ "Class AnimationTrackState : Instance\n"
+ "Class Animator : Instance\n"
+ " Function Instance Animator:LoadAnimation(Instance animation)\n"
+ "Class AssetService : Instance\n"
+ " Function void AssetService:SetAssetRevertUrl(string revertUrl) [LocalUserSecurity]\n"
+ " Function void AssetService:SetAssetVersionsUrl(string versionsUrl) [LocalUserSecurity]\n"
+ " Function void AssetService:SetPlaceAccessUrl(string accessUrl) [LocalUserSecurity]\n"
+ " YieldFunction int AssetService:CreatePlaceAsync(string placeName, int templatePlaceID, string description = )\n"
+ " YieldFunction int AssetService:CreatePlaceInPlayerInventoryAsync(Instance player, string placeName, int templatePlaceID, string description = )\n"
+ " YieldFunction Dictionary AssetService:GetAssetVersions(int placeId, int pageNum = 1)\n"
+ " YieldFunction int AssetService:GetCreatorAssetID(int creationID)\n"
+ " YieldFunction Instance AssetService:GetGamePlacesAsync()\n"
+ " YieldFunction Dictionary AssetService:GetPlacePermissions(int placeId)\n"
+ " YieldFunction bool AssetService:RevertAsset(int placeId, int versionNumber)\n"
+ " YieldFunction void AssetService:SavePlaceAsync()\n"
+ " YieldFunction bool AssetService:SetPlacePermissions(int placeId, AccessType accessType = Everyone, Array inviteList = {})\n"
+ "Class BadgeService : Instance [notCreatable]\n"
+ " Function void BadgeService:SetAwardBadgeUrl(string url) [LocalUserSecurity]\n"
+ " Function void BadgeService:SetHasBadgeCooldown(int seconds) [LocalUserSecurity]\n"
+ " Function void BadgeService:SetHasBadgeUrl(string url) [LocalUserSecurity]\n"
+ " Function void BadgeService:SetIsBadgeDisabledUrl(string url) [LocalUserSecurity]\n"
+ " Function void BadgeService:SetIsBadgeLegalUrl(string url) [LocalUserSecurity]\n"
+ " Function void BadgeService:SetPlaceId(int placeId) [LocalUserSecurity]\n"
+ " YieldFunction bool BadgeService:AwardBadge(int userId, int badgeId)\n"
+ " YieldFunction bool BadgeService:IsDisabled(int badgeId)\n"
+ " YieldFunction bool BadgeService:IsLegal(int badgeId)\n"
+ " YieldFunction bool BadgeService:UserHasBadge(int userId, int badgeId)\n"
+ " Event BadgeService.BadgeAwarded(string message, int userId, int badgeId) [RobloxScriptSecurity]\n"
+ "Class BasePlayerGui : Instance\n"
+ "Class CoreGui : BasePlayerGui [notbrowsable] [notCreatable]\n"
+ " Property Object CoreGui.SelectionImageObject [RobloxScriptSecurity]\n"
+ " Property int CoreGui.Version [readonly]\n"
+ "Class PlayerGui : BasePlayerGui [notCreatable]\n"
+ " Property Object PlayerGui.SelectionImageObject\n"
+ " Function float PlayerGui:GetTopbarTransparency()\n"
+ " Function void PlayerGui:SetTopbarTransparency(float transparency)\n"
+ " Event PlayerGui.TopbarTransparencyChangedSignal(float transparency)\n"
+ "Class StarterGui : BasePlayerGui\n"
+ " Property bool StarterGui.ResetPlayerGuiOnSpawn\n"
+ " Property bool StarterGui.ShowDevelopmentGui\n"
+ " Function bool StarterGui:GetCoreGuiEnabled(CoreGuiType coreGuiType)\n"
+ " Function void StarterGui:RegisterGetCore(string parameterName, Function getFunction) [RobloxScriptSecurity]\n"
+ " Function void StarterGui:RegisterSetCore(string parameterName, Function setFunction) [RobloxScriptSecurity]\n"
+ " Function void StarterGui:SetCore(string parameterName, Variant value)\n"
+ " Function void StarterGui:SetCoreGuiEnabled(CoreGuiType coreGuiType, bool enabled)\n"
+ " YieldFunction Variant StarterGui:GetCore(string parameterName)\n"
+ " Event StarterGui.CoreGuiChangedSignal(CoreGuiType coreGuiType, bool enabled) [RobloxScriptSecurity]\n"
+ "Class BinaryStringValue : Instance\n"
+ "Class BindableEvent : Instance\n"
+ " Function void BindableEvent:Fire(Tuple arguments)\n"
+ " Event BindableEvent.Event(Tuple arguments)\n"
+ "Class BindableFunction : Instance\n"
+ " YieldFunction Tuple BindableFunction:Invoke(Tuple arguments)\n"
+ " Callback Tuple BindableFunction.OnInvoke(Tuple arguments)\n"
+ "Class BodyMover : Instance\n"
+ "Class BodyAngularVelocity : BodyMover\n"
+ " Property Vector3 BodyAngularVelocity.AngularVelocity\n"
+ " Property Vector3 BodyAngularVelocity.MaxTorque\n"
+ " Property float BodyAngularVelocity.P\n"
+ " Property Vector3 BodyAngularVelocity.angularvelocity\n"
+ " Property Vector3 BodyAngularVelocity.maxTorque\n"
+ "Class BodyForce : BodyMover\n"
+ " Property Vector3 BodyForce.Force\n"
+ " Property Vector3 BodyForce.force\n"
+ "Class BodyGyro : BodyMover\n"
+ " Property CoordinateFrame BodyGyro.CFrame\n"
+ " Property float BodyGyro.D\n"
+ " Property Vector3 BodyGyro.MaxTorque\n"
+ " Property float BodyGyro.P\n"
+ " Property CoordinateFrame BodyGyro.cframe [deprecated]\n"
+ " Property Vector3 BodyGyro.maxTorque [deprecated]\n"
+ "Class BodyPosition : BodyMover\n"
+ " Property float BodyPosition.D\n"
+ " Property Vector3 BodyPosition.MaxForce\n"
+ " Property float BodyPosition.P\n"
+ " Property Vector3 BodyPosition.Position\n"
+ " Property Vector3 BodyPosition.maxForce [deprecated]\n"
+ " Property Vector3 BodyPosition.position [deprecated]\n"
+ " Function Vector3 BodyPosition:GetLastForce()\n"
+ " Function Vector3 BodyPosition:lastForce() [deprecated]\n"
+ " Event BodyPosition.ReachedTarget()\n"
+ "Class BodyThrust : BodyMover\n"
+ " Property Vector3 BodyThrust.Force\n"
+ " Property Vector3 BodyThrust.Location\n"
+ " Property Vector3 BodyThrust.force [deprecated]\n"
+ " Property Vector3 BodyThrust.location [deprecated]\n"
+ "Class BodyVelocity : BodyMover\n"
+ " Property Vector3 BodyVelocity.MaxForce\n"
+ " Property float BodyVelocity.P\n"
+ " Property Vector3 BodyVelocity.Velocity\n"
+ " Property Vector3 BodyVelocity.maxForce [deprecated]\n"
+ " Property Vector3 BodyVelocity.velocity [deprecated]\n"
+ " Function Vector3 BodyVelocity:GetLastForce()\n"
+ " Function Vector3 BodyVelocity:lastForce()\n"
+ "Class RocketPropulsion : BodyMover\n"
+ " Property float RocketPropulsion.CartoonFactor\n"
+ " Property float RocketPropulsion.MaxSpeed\n"
+ " Property float RocketPropulsion.MaxThrust\n"
+ " Property Vector3 RocketPropulsion.MaxTorque\n"
+ " Property Object RocketPropulsion.Target\n"
+ " Property Vector3 RocketPropulsion.TargetOffset\n"
+ " Property float RocketPropulsion.TargetRadius\n"
+ " Property float RocketPropulsion.ThrustD\n"
+ " Property float RocketPropulsion.ThrustP\n"
+ " Property float RocketPropulsion.TurnD\n"
+ " Property float RocketPropulsion.TurnP\n"
+ " Function void RocketPropulsion:Abort()\n"
+ " Function void RocketPropulsion:Fire()\n"
+ " Function void RocketPropulsion:fire() [deprecated]\n"
+ " Event RocketPropulsion.ReachedTarget()\n"
+ "Class Test : Testing [readonly] [RobloxPlaceSecurity]\n"
+ " Property bool Testing.ReadOnlyAndSecure [readonly] [RobloxPlaceSecurity]";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html