用于在#和之间获取行的PHP正则表达式#

用于在#和之间获取行的PHP正则表达式#,php,regex,Php,Regex,我被一个非常简单的正则表达式困住了。我已经尝试了很多东西,但是没有结果,所以我将使用简单的: 我想得到一个多行结果(为了以后替换它,但我已经写了这部分,它工作得很好),它应该在“#”字符之间。下面是示例文件: # Zulu 9.8.9.8 add method 9.8.9.8 {ssh} {telnet} add password 9.8.9.8 {jouejoue} add user 9.8.9.8 {Zekrom} # Zulu 1.1.1.1 add method 1.1.1.1 {ssh

我被一个非常简单的正则表达式困住了。我已经尝试了很多东西,但是没有结果,所以我将使用简单的:

我想得到一个多行结果(为了以后替换它,但我已经写了这部分,它工作得很好),它应该在“#”字符之间。下面是示例文件:

# Zulu 9.8.9.8
add method 9.8.9.8 {ssh} {telnet}
add password 9.8.9.8 {jouejoue}
add user 9.8.9.8 {Zekrom}
# Zulu 1.1.1.1
add method 1.1.1.1 {ssh} {telnet}
add password 1.1.1.1 {mypassword}
add user 1.1.1.1 {adminstyle}
# Zulu 2.2.2.2
add method 2.2.2.2 {ssh} {telnet}
add password 2.2.2.2 {diffpassword}
add user 2.2.2.2 {pixyokadi}
我使用了像“/regex/s”这样的“s”选项,因此“\n”将在“.”字符中计数。我想使用[^#],但它取消了“s”选项。我不知道为什么,但在使用这个时:

/#.*#/s
第一段的第2行忽略了第1.1.1.1行的“#”,我不明白为什么。我也尝试过使用捕获括号,但没有成功。我曾经用正则表达式搜索IP,但因为我甚至不能得到我想要的段落,我使用了一个更简单的。有人能给我解释一下吗


感谢阅读。

尝试使用以下正则表达式:

/#[^#]*/g
g
modifier执行全局搜索

同样,使用
[^#]*
您将无法捕获下一次出现的
——除了
符号之外的所有内容

例如:


你的预期产出是什么?这正是hsz给我的建议。@AvinashRaj这是真的。已编辑。由于问题指定(或可能只是碰巧说,谁知道?)介于#之间,您可以通过执行
/(?没错,Janus,我想选择all并添加捕获括号,为您的答案输出额外的#.Thx。
preg#u match_all
进行全局搜索:p
\g
修饰符不执行任何操作