我需要用我知道的分隔符来分割字符串,也不知道.例如,我知道我想用"\n"和","和"."分割字符串.还有1个可以由用户定义的sperator:例如它可以是";" 或"你好"或几乎任何东西.
我试过这个:
"[\n|,|.|".$exp."]"
Run Code Online (Sandbox Code Playgroud)
......但是没有按预期工作.据我所知| 意思是.所以这个reg exp应该说用"\n"或","或"."分隔.或"你好".我认为它是因为如果我尝试[hello]那么它会按每个字母而不是整个字分开.这很奇怪,因为如果我只尝试[\n]那么它只会被"\n"拆分 - 而不是"\"或"n".
有人可以向我解释一下吗?:)
当您在字符类中放置一堆字符时,如在中[hello],这定义了一个匹配一个字符h,e,l或o的标记.此外,|在字符类中没有任何意义 - 它只是作为普通字符匹配.
正确的解决方案是不使用字符类 - 您打算使用普通括号:
(\n|,|\.|".$exp.")
顺便说一句 - 确保你逃避任何正则表达式元字符$exp.基本上,这里的完整列表需要使用反斜杠进行转义:http://regular-expressions.info/reference.html可能有一个辅助函数为您执行此操作.
编辑:既然你不使用字符类,我们现在需要逃避\的.现在是一个元字符的意思是"匹配的任何一个人.差点忘了.