C# 在C中检测Python缩进开始#
我正在编写一段代码,以便在嵌入式Python编辑器中自动生成缩进,我正在努力检测所有用例C# 在C中检测Python缩进开始#,c#,regex,C#,Regex,我正在编写一段代码,以便在嵌入式Python编辑器中自动生成缩进,我正在努力检测所有用例 foo->下一行没有缩进 foo:->缩进 foo:#bar->缩进 foo:#bar:->缩进 foo#bar:->无缩进 到目前为止,我有: Match ColonMatch = Regex.Match(curLineText, @"((:)[^:]*|#.*:)\s*$"); if (ColonMatch.Success && (ColonMatch.Groups.Count == 3
foo
->下一行没有缩进foo:
->缩进foo:#bar
->缩进foo:#bar:
->缩进foo#bar:
->无缩进Match ColonMatch = Regex.Match(curLineText, @"((:)[^:]*|#.*:)\s*$");
if (ColonMatch.Success && (ColonMatch.Groups.Count == 3) &&
(ColonMatch.Groups[2].Value == ":"))
{
// indent on next line
这适用于除第四种情况外的所有情况
<>我不需要考虑C风格的注释或多行Python注释。
有人能帮我弄点时髦的regex foo吗?谢谢 实际上(至少对于这5种情况),您不需要正则表达式:
curLineText = curLineText.Trim();
bool indent = curLineText.Contains("#")?
curLineText.Substring(0, curLineText.Length - 1).Contains(":"):
curLineText.EndsWith(":");
更新:
我研究了python,#
是用于注释的(我不知道),因此省略它会让我们知道它是否以结尾:
。更简单的是:
bool indent = curLineText.Split('#')[0].Trim().EndsWith(":");