What are the correct regular expressions for syntax highlighting?

谁说我不能喝 提交于 2019-12-20 07:49:32

问题


What are the correct regular expressions using NSRegularExpression for syntax highlighting?

The following test must be passed:

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

回答1:


Using PCRE, the (?s) modifier is a single-line mode, where . can even match newlines.

(?ms)(//[^\n]+|/\*.*?\*/)

Live example

You will notice that the second-to-last line, with nested /* /* */ */ will ONLY match the first /* to the first */, and will not match the */ at the end of the line (which is actually correct behavior).




回答2:


I think it's impossible in global sense (not just on the sample). So, regexp cann't be used for syntax highlighting.



来源:https://stackoverflow.com/questions/24168145/what-are-the-correct-regular-expressions-for-syntax-highlighting

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!