Separating disjoint sub-Graphs

You can use WeaklyConnectedGraphComponents on the input set edges:

WeaklyConnectedComponents returns a list of components $\{c_1,c_2,\ldots\}$, where each component $c_i$ is given as a graph.

wcgc = WeaklyConnectedGraphComponents[edges]

Length@wcgc

63

Grid[Partition[SetProperty[#, VertexLabels -> "Name"] & /@ wcgc, 7], Dividers -> All]

enter image description here


Does this help?

G = Graph[edges
,AspectRatio->1
,ImageSize->700
,VertexLabels->Automatic
]; 
Subgraph[G, #, VertexLabels -> "Name"] & /@ WeaklyConnectedComponents[G]