正则表达式匹配所有

3

可能是重复问题:
如何在正则表达式中跨多行匹配任何字符?

我正在制作一款类似于Notepad ++的软件。

我正在使用正则表达式查找单词并为其着色。 但是,我无法对多行注释进行着色。

示例:/* This is a multiline comment */

使用当前的正则表达式:/\*.*?\*/ - 它能正常工作,直到换行符出现。

因此,它会匹配:/*This, for instance!*/ 但不会匹配:

/* This kind of comments
 - Where multiple lines is placed...
*/

我在想,除了使用[dot]来查找评论中的单词,我能否使用其他匹配所有运算符?

  • 我正在使用C#类'Regex'

请参考以下链接中的答案:https://dev59.com/nnVC5IYBdhLWcg3w21Mq#2626317 - Martin Ender
1
一个副注:使用正则表达式并不够用。你需要上下文无关文法。例如,如果 */ 在字符串内部(假设你为一种编程语言创建语法高亮),会发生什么? - Prinzhorn
1个回答

3
尝试这个,可能会对你有用。
/\**.*?\*/

RegexOptions 必须设置为 MultiLine

来自 RegexBuddy 的屏幕截图,

enter image description here


有关编程的内容,请将以下文本从英语翻译成中文。仅返回已翻译的文本:有关下投票的任何评论吗? :) - John Woo
我没有点踩,但难道不是完全相反的情况吗?你不需要设置RegexOptions.Singleline吗? - Martin Ender
@m.buettner 但是用户想要使用“多行”写入吗? - John Woo
引用您提供的页面上的内容:“指定单行模式。更改点(.)的含义,使其匹配每个字符(而不是除\n之外的每个字符)。”,因此我猜这意味着,“Singleline”意味着“将字符串中的所有内容视为一行处理”。 - Martin Ender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接