我有一些与FastColoredTextBox
控件一起使用的正则表达式,用于标识需要在TextStyle
事件上设置TextChanged
的文本。我特别难以识别此正则表达式的问题。
@"(^STEP\s|^\s+STEP\s)(.*)$"
在我的语言中,我有一个命令STEP
,它有一个参数,参数是有效的String
(步骤名称)。在我的编辑器和解析器中,如果命令在它自己的行上,前面有0-N个空格字符,后跟一个空格,后跟有效字符串,后面跟着行的末尾,则只能解析该命令。 p>
我的问题是上面的正则表达式与所有难以定义的实例都不匹配(正则表达式令人困惑)。例如,将以下文本粘贴到我的编辑器中会导致步骤名称被正确突出显示
STEP My Special Step Name
认为此文本导致其未突出显示
STEP My Special Step Name
// Comment
与此同时
//Comment
STEP My Special Step Name
据我所知,我试图匹配的文本是否包含新行,但它不匹配。我必须假设我使用锚点(?)^
和$
是问题,但我不知道它们如何匹配行的起始端?
我最初开始使用正则表达式来尝试匹配换行符,但它很快就被证明是不可理解的。我偶然发现了^
和$
,并决定它们会运作良好,但我猜我错了?