我需要建立一個字串並將其傳遞給外部程式。我需要使用 Eval Insert 函數來建立字串,但該字串還需要包含一個正規表示式,其中包含 ^ 字元。
我無法讓 JMP(版本 19.1.4)在 Eval Insert 呼叫中忽略該字元。以下是一個範例:
Str_To_Eval = "Insert_Str";
str = "This is a String containing ^Str_To_Eval^ and it also contains this regex : ^(?!.*_).*";
eval insert(str)
此操作失敗,並出現以下錯誤:
意外的「?」。或許缺少一個「)」。
第 1 行第 37 列:(?!.*_).*►
在 ^ 字元前加上 \! 並無幫助。用 \[ ..]\ 包裹也無濟於事。
我可以這樣解決:
Str_To_Eval = "Insert_Str";
RegExFragment = "^";
str = "This is a String containing ^Str_To_Eval^ and it also contains this regex : ^RegExFragment^(?!.*_).*";
eval insert(str);
這樣就能得到我想要的結果。
我想知道是否有其他方法可以轉義 ^ 字符,以便 Eval Insert() 函數忽略它?
請使用除^以外的字元。我通常使用¤。
Names Default To Here(1);
Eval Insert("Today is ¤As Date(Today())¤", "¤");
執行插入(字串, , ,<< )

謝謝!真不敢相信我用了 JMP 快二十年了,竟然一直沒發現 Eval Insert() 函數有個可選參數可以指定分隔符號!看來讀手冊還是有用的 