2016-02-26 108 views
0

我试图匹配以下模式工作:正则表达式不花括号

Testcase done, result: {error, 
          {test_case_failed, 
           "Fail: Not all values are as close to expected values."}} 

在这里,我用下面的正则表达式上面的模式匹配:

Testcase\s+done,\s+result:\s+\{(.*?)\} 

然而,我的模式不管用。

+1

正则表达式是什么味道?你有没有设置'.'来匹配新行? –

+0

这可能是换行符。 – shawnt00

+0

我使用https://regex101.com/来测试我的正则表达式 –

回答

2

用这个代替

Testcase\s+done,\s+result:\s+\{([\s\S]*?)\} 

More info about the . (dot) character

+0

谢谢!但是我的表情出了什么问题?我应该如何使用'。*'匹配新行? –

+0

@JohnRambo取决于你使用的是什么语言。例如,在.NET上,你必须使用[RegexOptions.Singleline](https://msdn.microsoft.com/en-us/library/system.text。 regularexpressions.regexoptions.aspx),而在Java上,[Pattern.DOTALL](http://stackoverflow.com/questions/3222649/any-character-including-newline-java-regex)。你也可以做一个正则表达式来表示它是否会匹配一个。或者在你的环境中换行(在Linux中是\ n,在Windows中是\ r \ n),但是所有的[\ s \ S]都没有什么麻烦的IMO – Tyress

0

很简单,因为我可以看到你行可以开始与测试用例或空格和括号“{”或空格和引号‘{’

Regex: 
Testcase.*|\ {.*| ".* 

Check Here