【问题标题】:Regex that looks for different characters depending on whether others are found根据是否找到其他字符来查找不同字符的正则表达式
【发布时间】:2018-06-27 16:17:37
【问题描述】:

我正在尝试使用 JavaScript 在正则表达式中将以下每个 python 导入语句捕获为不同的匹配组:

from myapp.foo import SomeReallyGreatClass
from myapp.bar import AnotherClassThatIsNotAsGood, WHAT_A_CONSTANT, SUCH_CONSTANT, \
  YET_ANOTHER_CONSTANT
from myapp.baz import (FirstClassEver, ThisClassDoesNothing, CanYouBelieveThisEvenExists,
  SoManyImports)

我将如何使用 JavaScript 正则表达式完成此操作?对于带有斜杠的多行,我需要正则表达式知道如果该行以斜杠结尾,它应该匹配到下一个不在斜杠之后的换行符。对于带括号的,它需要知道如果找到一个左括号,它将包括后续行,直到找到一个右括号。

【问题讨论】:

标签: javascript regex parsing


【解决方案1】:

假设要求是匹配所有的import语句,

尝试正则表达式:(^from (?:.*\n)+?(?=^from|$))

Demo

请注意,这不是有 1 个匹配项和多个组,而是每个导入有 1 个组的多个匹配项。使用这种方法,我们不需要单独处理\(

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多