RegEx:如何从选择中排除前两个字符

时间:2017-10-17 12:35:49

标签: regex

如果你看这个文字: FIRST TEXT (IF CAPS AND IF IT ENDS WITH A PERIOD) SHOULD BE EXCLUDED. Here comes all the text we want to grab. And the ONLY problem with our current regular expression is that it also includes the period and space in front of this text. Does anyone know how to fix it so we grab from "Here comes..." and not ". Here comes..."? Thank you.

我当前的正则表达式如下所示:(?![A-ZÆØÅ!''/ 0-9 \ s()] + [。])[^ =] *

  • 但我根本无法弄清楚如何从选择中排除第一个“。”。有人可以帮忙吗?你可以在这里试试: https://regex101.com/r/UpRlOV/3

2 个答案:

答案 0 :(得分:0)

npm install -g composer-playground

这就是你要找的东西吗?

这样你就可以从结果中抓取第1组

https://regex101.com/r/1Eo38B/1

答案 1 :(得分:0)

点和空格是匹配的,因为您的超前模式仅与点匹配。为确保您的匹配不以. +空格开头,您可以使用它们(如果存在)。在这种情况下,可选的非捕获组非常方便:

(?![A-ZÆØÅ!´'\/0-9\s()]+[.])(?:\.\s*)?\K[^=]+
                            ^^^     ^^

或者,如果您的正则表达式引擎不支持\K匹配重置运算符,请使用捕获组:

(?![A-ZÆØÅ!´'\/0-9\s()]+[.])(?:\.\s*)?([^=]+)
                                      ^     ^

请参阅regex demo