[英]Regular expression with Azure DevOps task extension
我們正在使用磁盤管理更新我們的 azure 虛擬機任務擴展。 多行字段,讓用戶提供 label、字母和數據磁盤大小,並使用換行符和分號分隔項目和磁盤。 像這樣:
"數據庫磁盤";F;30
“臨時數據庫磁盤”;G;30
“日志數據庫”;H;15E
這是任務.json:
{
"name": "NewDataDisks",
"type": "multiLine",
"label": "Data Disks",
"required": false,
"groupName": "Disks",
"visibleRule": "AddDataDisk = true",
"defaultValue": "\"Database Disk\";F;30\n\"Temp Database Disk\";G;30\n\"Logs Database\";H;15",
"helpMarkDown": "Provide list of data disks with disk label, mount letters and disk capacity separated by a semicolon :\n\n \"Database Disk\";F;30\n\"Temp Database Disk\";G;30\n\"Logs Database\";H;15 \n\n Each virtual machine size has a max of data disks attached which can't be check in here. During release execution, a check will be done.",
"validation": {
"expression": "isMatch(value, '(^\"[a-z A-Z]+\";[a-zA-Z]{1};([1-9]+[0-9]+|[1-9]+)$)','Multiline')",
"message": "[Enter a valid datadisks list](https://regex101.com/r/WeDgsJ/1)"
}
}
問題是如果至少有一行匹配則驗證將通過。 但我希望每一行都完全匹配,但我很難找到如何使用正則表達式。 任何幫助將不勝感激。
謝謝。
您可以刪除'Multiline'
選項(因為您需要將字符串視為整個文本,而不是逐行文本)並使用
'^"[a-z A-Z]+";[a-zA-Z];[1-9][0-9]*(?:\r?\n"[a-z A-Z]+";[a-zA-Z];[1-9][0-9]*)*$'
詳情:
^
- 字符串的開始"
- 一個"
字符[az AZ]+
- 一個或多個 ASCII 字母或空格";
- ";
substring[a-zA-Z]
- ASCII 字母;
- 一個分號[1-9][0-9]*
- 一個非零數字,然后是零個或多個數字(?:
- 非捕獲“容器”組的開始:
\r?\n
- CRLF 或 LF 行結尾"[az AZ]+";[a-zA-Z];[1-9][0-9]*
- 與上面相同的模式)*
- 組結束,重復零次或多次$
- 字符串結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.