[英]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.