使用NSRegularExpression进行语法突出显示的正确正则表达式是什么?
必须通过以下测试:
code // comment
code /* comment */ code
code "string" code
code // comment
code
code /* comment
comment */ code
code "string
code" string
code "string\
string" code
code // comment "comment"
code /* comment "comment" */ code
code "string /* string */ // string" code
code // comment
"string"
code /* comment
"comment" */ code
code "string
/* comment */ // comment" string
code "string\
/* string */ // string" code
code // comment // comment
code /* comment /* comment */ code */
code "string \" string" code "string" code
答案 0 :(得分:1)
使用PCRE,(?s)修饰符是单行模式,.
甚至可以匹配换行符。
(?ms)(//[^\n]+|/\*.*?\*/)
您会注意到,嵌套/* /* */ */
的倒数第二行仅与第一个/*
匹配*/
,与*/
不匹配在行的末尾(这实际上是正确的行为)。
答案 1 :(得分:0)
我认为这在全球意义上是不可能的(不仅仅是样本)。因此,regexp不能用于语法高亮。