2012-02-03 276 views
1

您好我正在尝试写一个正则表达式来匹配“{”字符,只有当它不在引号内时。正则表达式不匹配引号或转义引号

然后我需要返回(替换行)与该字符右侧的所有内容(如果有的话)。

同样,我需要对“}”字符做同样的处理,但返回左边的所有内容。这些需要是单独的正则表达式。

举个例子:

if { something 

应该匹配,并返回 “something

if { " something 

应该匹配,并返回 “" something

" if { " something 

应该不匹配,而不是返回anythi ng

+0

你到目前为止尝试过什么?谷歌展望未来,看起来很落后,它应该足够简单 – Standage 2012-02-03 16:31:15

+0

在标题中,你写“不在引号或转义引号”。这是什么意思 - 应该将逃脱的引号视为未转义的引号,还是应该忽略它们?另外,是否可以在评论中引用引号(如果是这样,哪种评论以及如何处理)? – 2012-02-03 16:40:06

回答

1

不幸的是,这并不是正则表达式的.Net实现可以在没有遇到边缘情况下执行的。您需要使用解析器才能正确执行。一个基本的状态机模式,它沿着字符串迭代,并在碰到要查找的字符时翻转状态。

+0

我很害怕你会这么说。好的谢谢 – user1187957 2012-02-03 19:38:23

相关问题