我有这样的文字
[内容] [部分]这是C#1部分[/ SECTION] [SECTION]这是C#2部分[/ SECTION] [SECTION]这是E#3部分[/ SECTION]
我尝试匹配每个部分,包括带有该表达式的section标签:
\[SECTION\][^SECTION]+(SECTION\])
但上面的代码不起作用,因为[^ SECTION]在任何不是S,E,C,T,I,O和N的字符的开始和结束标签之间的文本中查找
关于如何解决这个问题的任何想法?
我使用PHP来匹配标签及其内容与preg_match_all();我喜欢逐个匹配每个部分,而不是同时匹配所有部分。
答案 0 :(得分:3)
\[SECTION\](.*?)\[/SECTION\]
我认为这就是你想要的,获取单个SECTION内容的文本?
?
使*
懒惰,因此它只匹配当前[/SECTION]
的第一个$input = "[CONTENT][SECTION]This is the section C #1[/SECTION][SECTION]This is the section C #2[/SECTION][SECTION]This is the section E #3[/SECTION]";
var_dump(preg_match_all("(\[SECTION\](.*?)\[/SECTION\])",$input,$m),$m);
。
示例:
int(3)
array(2) {
[0]=>array(3) {
[0]=>string(43) "[SECTION]This is the section C #1[/SECTION]"
[1]=>string(43) "[SECTION]This is the section C #2[/SECTION]"
[2]=>string(43) "[SECTION]This is the section E #3[/SECTION]"
}
[1]=>array(3) {
[0]=> string(24) "This is the section C #1"
[1]=> string(24) "This is the section C #2"
[2]=> string(24) "This is the section E #3"
}
}
结果:
{{1}}
答案 1 :(得分:0)
试试这个:
\[SECTION\].+?\[\/SECTION\]