回答
不使用正則表達式,但與一些LINQ的,你可以寫
string test = "(Id=7) OR (Id=6) OR (Id=8)";
var result = test
.Split(new string[] { " OR "}, StringSplitOptions.None)
.Select(x => x = x.Trim('(', ')'))
.ToList();
如果您還需要考慮考慮的存在和運營商或空格之間的可變數目AND/OR和條件,那麼你可以將代碼更改爲這一個
string test = "(Id=7) OR (Id=6) OR (Id=8)";
var result = test
.Split(new string[] { "OR", "AND"}, StringSplitOptions.None)
.Select(x => x = x.Trim('(', ')', ' '))
.ToList();
如果''''和'OR'之間有超過1個空格會怎麼樣? –
刪除OR周圍的空格並添加一個空格字符到修剪 – Steve
是的,但我覺得可能會有更多* if * s通常更易於使用正則表達式進行調整。 –
只要抓住比賽
(?<=\()[^)]*(?=\))
觀看演示。
https://regex101.com/r/iJ7bT6/18
string strRegex = @"(?<=\()[^)]*(?=\))";
Regex myRegex = new Regex(strRegex, RegexOptions.Multiline);
string strTargetString = @"(Id=7) OR (Id=6) OR (Id=8)";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
if (myMatch.Success)
{
// Add your code here
}
}
兩點:1)由於您可以使用組,所以不需要週轉,2)摘錄不會產生列表作爲結果。 –
@WiktorStribiżew製作清單應該是一項簡單的任務 – vks
是的,我展示瞭如何在我的答案中完成。 「OfType」還有另一種LINQ方式,BTW。 –
我建議結合正則表達式和LINQ權力:
var result = Regex.Matches(input, @"\(([^()]+)\)")
.Cast<Match>()
.Select(p => p.Groups[1].Value)
.ToList();
的\(([^()]+)\)
模式(see its demo)將匹配所有(...)
字符串,並使用組1(轉義(...)
內)來構建最終名單。
- 1. 什麼是創建HTML水平製表符的優雅方式?
- 2. 更優雅的從列表創建元組元組的方法
- 3. 從NSArray獲取子數組的最優雅方式是什麼?
- 4. 創建元組列表(使用更優雅的方式)
- 5. 什麼是創建這一系列數字最優雅的方式?
- 6. 用JSON4s解構JSON數組的最優雅方式是什麼?
- 7. 定義數組「實用功能」的優雅方式是什麼?
- 8. 更優雅的方式來創建來自BeautifulSoup.findAll的行列表
- 9. 什麼是從另一個字典的鍵和值數組創建詞典的優雅方式?
- 10. 什麼是「改變」元組元素的優雅方式?
- 11. python,創建向量的優雅方式
- 12. 什麼是最優雅的方式來檢索MySQL表評論?
- 13. 什麼是使用Search Bean表達查詢的優雅方式?
- 14. 創建數組數組的優雅方法?
- 15. 從元組列表中創建對的字典的優雅方法?
- 16. 什麼是從網格行創建列表的最佳方式
- 17. 優雅的方式來創建一列等距陣列
- 18. 優雅的方式來過濾列表
- 19. 優雅的方式無序列表
- 20. 什麼是重新排列關聯數組的最優雅的方法?
- 21. 什麼是從C#中的另一個列表更新列表中一個項目的最優雅的方式?
- 22. 什麼是最優雅的方式來使這種字符串數組更改?
- 23. Ruby中從URL中刪除參數的最優雅方式是什麼?
- 24. 優雅的方式來獲得迭代列表的組合
- 25. 什麼是最優雅的方式來獲得域的擴展?
- 26. 停止.NET線程的最不優雅的方式是什麼?
- 27. 優雅的方式
- 28. 優雅的方式
- 29. 封裝多步計算最優雅的方式是什麼?
- 30. 將Redis添加到/ etc/services最優雅的方式是什麼?
你是否試圖在'('和')'字符之間捕獲正則表達式,並將它們放入'string []'中? –
['\(([^)] *)\)'](https://regex101.com/r/eM1dB0/1)全局標誌,並訪問捕獲組1 – Tushar
似乎有理由問你想如何對待任何AND?或者也許不可能有任何其他分隔符而不是OR。 – Marcus