為了檢查一個或多個變數(如var1, var2, ...)是否在腳本中被設定,我把腳本讀成一個字串串列(逐行),并檢查某一行是否像
var1=。
[var1,x]=...
[var2,x]=...
[x,y,var1,z]=...
目前我使用的是以下模式
pattern = '^([.*)? (var1|var2|var3)(.*])?=';
ix = regexp(s,pattern,'one')。
這對我的目的有效,但我知道這不是一個安全的模式,因為像[x,vvar1,y]=...這樣的東西也符合這個模式。
我目前的解決方案是為每種型別的運算式制定單獨的模式,但我想知道是否有一種獨特的模式可以滿足我的需求。
下面是一些例子,如果我想匹配
abc或def中的任何一個,
pattern = '^([.*)? (abc|def)(.*])?=';
%%好的例子。
regexp('x=1',pattern,' once') % output []/span>
regexp('aabc=1',pattern,'once') % output []/span>
regexp('abc=1',pattern,'once') % output 1
regexp('[other,abc]=deal(1,2)', pattern,'once') % output 1。
%壞的例子。
regexp('[x,aabcc]=deal(1,2)',pattern,' once') % output 1
regexp('[x,abcc,y]=deal(1,2,3)', pattern,'once') % output 1。
uj5u.com熱心網友回復:
你要確保在字串中至少有一個特定的變數。
你可以使用
^[?(w ,)*(abc|def)(,w )*]? =
請看regex演示。
詳情:
^- 字串的開始[?- 一個可選的字面[字符 。
(w ,)*- 零個或多個一個或多個單詞字符 一個逗號序列 。
(abc|def)--要么是abc,要么是def。
(,w )*- 零個或多個逗號 一個或多個字符序列 。
]?- 一個可選的]字符 。
=- 一個=字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/307568.html
標籤:
下一篇:我的輸入檔案日期格式每天都在變化
