回答
不使用正則表達式,但與一些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. python,創建向量的優雅方式
- 4. 什麼是抽象函數的優雅方式 - 不是對象?
- 5. 什麼是最優雅的方式來檢索MySQL表評論?
- 6. 從元組列表中創建對的字典的優雅方法?
- 7. 優雅的方式來創建一列等距陣列
- 8. 什麼是重新排列關聯數組的最優雅的方法?
- 9. 什麼是從C#中的另一個列表更新列表中一個項目的最優雅的方式?
- 10. 什麼是最優雅的方式來使這種字符串數組更改?
- 11. Ruby中從URL中刪除參數的最優雅方式是什麼?
- 12. 優雅的方式來獲得迭代列表的組合
- 13. 停止.NET線程的最不優雅的方式是什麼?
- 14. 優雅的方式
- 15. 什麼是F#中最優雅的氣泡排序方式?
- 16. 在Python中編寫循環的最優雅方式是什麼?
- 17. 在Perl中捕捉信號的最優雅方式是什麼?
- 18. 什麼是壓縮此循環的優雅方式?
- 19. 優雅的方式來操縱列表中的列表?
- 20. JavaScript 2D數組分組:是否有更優雅/最優化的方式?
- 21. 創建字典內部列表的最快方式是什麼?
- 22. 更優雅/ pythonic的方式來追加到一個數組,或創建它
- 23. 一個優雅的方式,使python中的函數列表
- 24. 優雅的方式減去每個列表元素的數字
- 25. 在正則表達式中,處理分隔列表中的fencepost問題的優雅方式是什麼?
- 26. 從包含元素的鍵的值枚舉多維PHP數組上的鍵最優雅的方式是什麼?
- 27. 聚合列的更優雅的方式
- 28. 最優雅的方式在列表中算整數
- 29. golang - 優雅的方式被序列化
- 30. 從數組創建列表
你是否試圖在'('和')'字符之間捕獲正則表達式,並將它們放入'string []'中? –
['\(([^)] *)\)'](https://regex101.com/r/eM1dB0/1)全局標誌,並訪問捕獲組1 – Tushar
似乎有理由問你想如何對待任何AND?或者也許不可能有任何其他分隔符而不是OR。 – Marcus