每当我看到任何复杂的正则表达式时,我的眼睛就会开始流水.是否有任何现有的解决方案为正则表达式中的不同类型的符号赋予不同的颜色?
理想情况下,我希望对文字字符,转义序列,类代码,锚点,修饰符,前瞻等进行不同的突出显示.显然,语法会在不同语言之间略有变化,但这是稍后要处理的皱纹.
奖励积分如果这可以某种方式与语法突出显示Vim与使用正则表达式的任何语言共存.
这是存在于某个地方,还是我应该在那里制作呢?
正则表达式可能不是语法突出显示的,但您可以通过其他方式考虑使它们更具可读性.
有些语言允许您跨多行(perl,C#,Javascript)打破正则表达式.一旦你这样做,你可以格式化它,使普通人的眼睛更具可读性. Here’s an example of what I mean.
您也可以使用某些语言的advanced (?x) syntax explained here.这是一个例子:
(?x: # Find word-looking things without vowels,if they contain an "s" \b # word boundary [^b-df-hj-np-tv-z]* # nonvowels only (zero or more) s # there must be an "s" [^b-df-hj-np-tv-z]* # nonvowels only (zero or more) \b # word boundary )
编辑:
正如Al所指出的,如果所有其他方法都失败,您也可以使用字符串连接.这是一个例子:
regex = "" # Find word-looking things without vowels,if they contain an "s" + "\b" # word boundary + "[^b-df-hj-np-tv-z]*" # nonvowels only (zero or more) + "s" # there must be an "s" + "[^b-df-hj-np-tv-z]*" # nonvowels only (zero or more) + "\b"; # word boundary