2012-07-13 88 views
0

我有一些正则表达式的问题;我需要找到引号之间的所有内容,而不是要删除的内容。现在,标志着行情是很容易的只是简单的正则表达式删除无标记

".*?" 

用点新行(匹配行)相匹配。所以现在我已经标明了我需要的一切,我可以简单地删除这个搜索找不到的所有东西吗?为什么这么做很难 - 删除未标记的文本;这个概念本身非常简单。

我使用正则表达式的记事本+ +。

接下来,我需要在这之后和格式去除前2个报价,所享有X报价如下所示的方式。但即使是基本的概念,我仍然挣扎着;我需要有人让我回到正轨。

"foo" "bar" "..." "..." "..." "baz" --> ..., ..., ..., baz 

"foo" "bar" "" "...     --> ......, baz 
..." "baz" 
+0

为什么“富”与“酒吧”被删除?他们不是在引号吗? – 2012-07-13 17:51:28

+0

回复:点1,不能想办法这一轮。 REGEX根据它的匹配行事,而不是匹配的行为。如果REGEX允许否定序列(而不是一次只能输入一个字符),这可能是微不足道的,但唉... – Utkanos 2012-07-13 18:02:05

+0

他们“foo”和“bar”在引号中,但它们是不需要的数据。 – user1524203 2012-07-13 18:10:52

回答

0

删除一切到第一次报价:

Search: \A[^"]+ 
Replace: (nothing) 

匹配任何引号和任何以下非引号字符,与引用的文字替换:

Search: ("[^"]*")[^"]+ 
Replace: $1 

我assumi NG是\A文本的开始相一致,并且$1指的是在正则表达式的记事本++的味道捕获组。