1
是否有一種方法來驗證包含括號的字符串,以便表達式忽略除最後一個以外的所有字符?正則表達式來跳過所有的「)」,但最後一個字符串
正則表達式表達是這樣的:(?<function>^(?!\/_).[A-Za-z_]*)\((?<args>[^\)]+\))
和字符串格式如下:
web_convert_param("sEV_4_URL2",
"SourceString={sEV_4}",
"SourceEncoding=HTML",
"TargetEncoding=URL",
"veh_sym_sel=EXT%20CAB%20(8CYL%204x2)",
LAST);
如果Regex Tester運行此停靠在接下來的兩個最後收父。這在這方面可能嗎?
運行此C#代碼如下所示:
try
{
var autoRemove = new ArrayList(ConfigurationManager.AppSettings["AutoRemoveFunctions"].Split(','));
baseFileData = ScriptProperties.ScriptText;
var matches = regEx_SBR.Matches(baseFileData);
foreach (Match match in matches)
{
var functionName = match.Groups["function"].Value.Trim();
if (autoRemove.Contains(functionName) || string.IsNullOrEmpty(functionName)) continue;
var args = match.Groups["args"].Value;
args = match.Groups["args"].Value.Replace("\"", "").Replace("\n", "").Replace("\r", "");
var arguments = args.Split(',');
_scriptFunction = new BaseScriptFunction();
ParseFunction(match.Groups["function"].Value.Trim(), arguments, match.Value.Trim());
if (_scriptFunction.IsNamedTransaction)
{
_scriptFunction.TransactionName = string.Format("{0}{1}",transactionPrefix, _scriptFunction.TransactionName);
}
ScriptFunctions.Add(_scriptFunction);
}
}
感謝快速回復。事實證明,這只是一點點。最後的半色調需要避免。 – Risho
然後提出兩個問題:1.您使用哪種語言? 2.你正在應用正則表達式的相同字符串/文件中是否有更多的函數? – Jerry
劇本是用C寫的,我只是無意中提到我過去做過很少的正則表達式,並且在我的腦海中陷入了這種困境。我基本上對發展商感到很緊張。對於給出的例子,你的建議變成了工作,但是破壞了別的東西。我可能不得不編輯我的帖子以包含更多詳細信息。 – Risho