我有一个这样的字符串:
|T1| This is some text for the first tag |T2| this is some text for the second tag
我需要解析标签和与每个标签相关联的文本。标签未提前知道,但它们由\|\w+\|
分隔。
我知道我可以在这里做一些事情,只要捕获组等等但是在使用PowerShell之后,我能想到的最好的方法是首先使用\|\w+\|.*
和ExplicitCapture选项隔离每个配对。然后从那里解析标签和文本。
但这样做的工作量增加了一倍,并且完全没有超酷的haxor。什么是regex-pro方法呢?
编辑:实际上我意识到已经很晚了,我误解了我的结果。以上内容实际上并不起作用,所以现在我甚至没有一个糟糕的解决方案。
答案 0 :(得分:4)
\|(?<tag>\w+)\|(?<text>[^|]*)
匹配|T1| This is some text for the first tag |T2| this is some text for the second tag
到
|T1| This is some text for the first tag
|T2| this is some text for the second tag
修改强>: 使用Regex Groups获取部分匹配项;
var tagName = match.Groups["tag"].Value;
var text = match.Groups["text"].Value;
转换为命名组而不是编号