【问题标题】:Match asterisk followed by space in PCRE在 PCRE 中匹配星号后跟空格
【发布时间】:2017-10-11 02:29:37
【问题描述】:

我只是无法弄清楚如何正确地进行正则表达式。我需要的是匹配一个星号,后跟一个空格,后跟任意数量的非 \n 字符。 (类似于reddit列表格式)

例子:

* Test
* Test2
* Test3

我得到的最接近的是这个,但它不起作用。

/^[*][ ](.*?)/s

熟悉PCRE的人可以帮帮我吗?

【问题讨论】:

  • 删除 s 修饰符(最终用 m 修饰符替换它)和 ?。看看贪婪/非贪婪量词

标签: regex escaping expression pcre


【解决方案1】:

您不应该在正则表达式的末尾使用惰性点模式,因为它永远不会匹配任何单个字符(因为当正则表达式引擎遇到它时它会被跳过,并且因为它之后没有任何东西可以匹配,空字符串将匹配.*?)。

使用贪心点图案:

^\* (.*)

regex demo

其他注意事项:您可以使用\h 来匹配任何水平空格而不是模式中的常规空格。要将行首与 ^ 匹配,请使用 m 修饰符。如果您需要 . 匹配任何字符包括换行符(和回车符,取决于活动的 PCRE 动词),请仅使用 s 修饰符。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多