簡體   English   中英

C#正則表達式從輸入中提取組

[英]C# regex to extract groups from input

我想在使用C#的任意輸入中提取兩個冒號( 包括冒號 )之間的任何內容。 特定

String input = "a:one:b:two:c:three:d";

我想要

{string[3]}
[0]: ":one:"
[1]: ":two:"
[2]: ":three:"

運用

String[ ] inverse = Regex.Split( input, ":.*?:" );

我得到了與我想要的相反的東西......

{string[4]}
[0]: "a"
[1]: "b"
[2]: "c"
[3]: "d"

在這種情況下,如何反轉這個或者是否有比Regex.Split更合適的東西?

怎么樣:[^:]+: 1。匹配冒號2.跟隨任何非冒號字符一次或多次。 3.接着是冒號。

要獲得匹配集,請使用MatchCollection matches = Regex.Matches(blah, ":[^:]+:"); 而不是Regex.Split

正則表達式簡潔而強大,但我發現自己編寫的注釋與使用它時的代碼一樣多。

你如何使用常規拆分(在':'上),提取每一個元素,然后重新附加冒號? 我覺得你過於復雜了。

試試這個正則表達式:

^(\w*):|:\w:|:\w$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM