.net 用于将字符串拆分为项目的正则表达式
我有一个文本的形式.net 用于将字符串拆分为项目的正则表达式,.net,regex,split,.net,Regex,Split,我有一个文本的形式 [1/12/2008 2:32:11 p.m. - name] line 1 [1/12/2008 2:36:00 p.m. - name] - PRIVATE line 2 [some text] sd [1/12/2008 2:36:00 p.m. - name] line 3 我想将其拆分为多个项目,以便访问每个项目的时间、名称和文本 e.g.: (item 1) 1: 1/12/2008 2:32:11 p.m. 2: name 3: line 1 (i
[1/12/2008 2:32:11 p.m. - name]
line 1
[1/12/2008 2:36:00 p.m. - name] - PRIVATE
line 2 [some text] sd
[1/12/2008 2:36:00 p.m. - name]
line 3
我想将其拆分为多个项目,以便访问每个项目的时间、名称和文本
e.g.:
(item 1)
1: 1/12/2008 2:32:11 p.m.
2: name
3: line 1
(item 2)
1: 1/12/2008 2:36:00 p.m.
2: name
3: - PRIVATE
line 2 [some text] sd
(item 3)
1: 1/12/2008 2:36:00 p.m.
2: name
3: line 3
我试图用一个正则表达式模式来实现这一点,但运气不好:
\[([0-9\/ \:\.apm]+?) - ([a-z_\-0-9]+?)\](.*?\r\n.+?)(?:\[[0-9\/ \:\.apm]+? - [a-z_\-0-9]+?\])
上述模式仅返回第一项
\[([0-9\/ \:\.apm]+?) - ([a-z_\-0-9]+?)\](.*?\r\n.+?)(?!\[[0-9\/ \:\.apm]+? - [a-z_\-0-9]+?\])
上面的模式返回所有项目,但只返回文本的第一个字符(第3组)
有什么建议吗?看起来这能满足你的需求
\[([0-9\/ \:\.apm]+?) - ([a-z_\-0-9]+?)\](.*?\r\n.+.*?)
我在上进行了测试,似乎得到了正确的格式。谢谢,我尝试了您的示例,但一开始还没有成功。后来发现“单行”正则表达式选项导致它无法工作。删除“单行”选项解决了这个问题。谢谢你链接到在线正则表达式测试仪1+@CheGueVerra-没问题!我希望在接下来的几天内发布一个新版本,因为它呈现HTML/XML匹配的方式存在一个“bug”。