使用正則表達式從字符串中查找子字符串我有一個存儲以下字符串的變量,我想找到紅色的文本,並用<替換它 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
感謝您的幫助。