当前位置:  开发笔记 > 编程语言 > 正文

如何在这个PHP正则表达式中允许斜杠?

如何解决《如何在这个PHP正则表达式中允许斜杠?》经验,为你挑选了1个好方法。

我现在已经尝试了几个小时,也在Stackoverflow上阅读了Regex维基,但似乎无法完成这个正则表达式.这是我的字符串:

Lorem: 8 FB / Ipsum-/Dolor: Some Text / Dolor: Some text with (brackets) / Sit amet.: Some Text with/slash / foobar / Last one: 36 foos

我想提取的是:Lorem,Ipsum-/Dolor,Dolor,Sit amet.,Last one.所以基本上从句子开头或斜线到冒号之后都是一切.

无论我尝试什么问题总是foobar因为它始终坚持在一起Last one.到目前为止我尝试过的例子是:( \/ |\A)([^(?!.* \/ )].*?):我希望从斜杠开始直到冒号,但不是如果有/(空格,斜线,空格),则提取所有内容.这样我想确保不要foobar / Last one归还.

有人能给我一些提示吗?



1> Wiktor Strib..:

请注意,在将一系列模式放入字符类([...])时会犯一个常见的错误,从而使正则表达式引擎与定义的集合中的单个字符匹配.[^(?!.* \/ )]匹配比以外的单个字符(,?,!,.,等.

你可以使用一个驯化的贪婪令牌:

(?: \/ |\A)((?:(?! \/ )[^:])+):
             ^^^^^^^^^^^^^^^^

请参阅正则表达式演示.文字空间可以替换为\s(如果可以匹配任何空格)或\h(仅匹配水平空格).

细节:

(?: \/ |\A)- 空格+ /+空格或字符串的开头

((?:(?! \/ )[^:])+)- 第1组捕获除:([^:])之外的一个或多个符号,这些符号不是空格 + /+ 空格序列的起点

: - 一个字面冒号.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有