我有一个字符串,我想使用正则表达式从给定的字符串中提取特定的字符串。我在 string split 的帮助下尝试过。但这需要大量处理才能实现答案。要提取的字符串为emr_cluster
:
var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";
如何提取emr_cluster
并获取值?
答案 0 :(得分:0)
如果该形状是预期的字符串,并且该形状的来源始终来自“ mxgraph.aws3”。 -然后您可以在该位置拆分-然后在下一个“;”拆分字符以获取您想要的形状值。
var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";
var shape = str.split('mxgraph.aws3.')[1].split(';')[0];
console.log(shape) // gives "emr_cluster"
如果它是一个不同的源-那么您可以相同-在“ shape =”上进行burt拆分以获取shape属性的完整源。
var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";
var shape = str.split('shape=')[1].split(';')[0];
console.log(shape) // gives "mxgraph.aws3.emr_cluster"
答案 1 :(得分:0)
var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";
let out = str.match(/shape=.*\..*\.(.*?);/)[1];
console.log(out)