使用正则表达式从字符串中查找子字符串我有一个存储以下字符串的变量,我想找到红色的文本并用<替换它 dt,colList [i] >。我想使用正则表达式,因为字符串可以根据要求变化,但字符串模式将类似(不完全相同)。
串:
Str = "Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
); ";谢谢 :)
Re:使用正则表达式从字符串中查找子字符串您可以使用'RegEx()',但作为替代方案,'Eval Insert Into()' - 在“帮助>脚本编写索引”中查看此示例。
FWIW,我更喜欢将表达式保留为表达式,因为编辑器仍然会提供关键字的颜色编码等等。要查看该方法,请搜索“替换为()”。
Re:使用正则表达式从字符串中查找子字符串谢谢 @ian_jmp 求助。
我不知道颜色编码方法是如何工作的。此外,我必须多次重复此任务,而正则表达式可能是更强大的方法。如果可能,请使用正则表达式()帮助解决它,否则请解释颜色编码如何工作。
谢谢Re:使用正则表达式从字符串中查找子字符串我想'你想要替换字符串中的Y变量。但是有点难以说,因为如果你看一下,由于用于显示网页的软件,所有字符串都呈现为紫色。
那么也许你可以重申一下你需要做什么,拜托?
Re:使用正则表达式从字符串中查找子字符串@ian_jmp
我有一个包含以下字符串的变量“str”。我想替换 <:Sen.Win.sta> 同 < dt,colList [i] >。我想使用正则表达式,因为字符串可以根据需求进行更改,但模式将是相同的。
Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
);Re:使用正则表达式从字符串中查找子字符串好。如果这是要求,你可以这样做:
NamesDefaultToHere(1);
// Get some data
dt = Open("$SAMPLE_DATA/Probe.jmp");
// Get some columns to loop over
yColList = dt << getColumnNames(Continuous);
// Loop over columns
for (y=1, y<=NItems(yColList), y++,
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Lot ID ), Y( yColList[y] ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Wait(1);
Report(gb) << closeWindow;
);
在这种情况下,Graph Builder命令是一个表达式(不在字符串中),您不需要打扰'SubstituteInto()'。
Re:使用正则表达式从字符串中查找子字符串我的最终要求是相同的,但每次我必须手动将变量Y中的值更改为(dt,ColList [i])以获得新表/新类型的图表。所以,我想自动化这个过程来改变Y变量值。我可以使用任何方法。我认为正则表达式是最好的方法。所以,这就是我想使用正则表达式的原因。
我主要要求自动查找和替换Y变量。
谢谢 @ian_jmp Re:使用正则表达式从字符串中查找子字符串我已经表达了自己对直接使用表达式的偏好,而不是将字符串复制并将结果解析为表达式。我确信我上一篇文章中的方法很容易适应你想做的事情。
但是,如果你想使用正则表达式和字符串,那么可能是这样的:
txt = "The quick brown fox jumped over the lazy dog";
matchTxt = "the";
replaceTxt = "a";
newTxt = Regex(txt, matchTxt, replaceTxt, GLOBALREPLACE, IGNORE CASE );
Print(txt, newTxt);
使用“帮助”>“脚本编制索引”并搜索JSl基元以查看选项和示例。
Re:使用正则表达式从字符串中查找子字符串谢谢 @ian_jmp
感谢您的帮助。