【发布时间】:2014-12-15 18:11:38
【问题描述】:
我有一个充满引号的文档,例如:"this is a quote"。其中一些引号在两个连字符中包含子条款,例如:"this quote - this one right here - has em dashes",而有些则只有一个连字符,例如:"this quote has just one thing - a hyphen"。
我试图让一些regex 匹配所有带有两个连字符的引号,但不匹配任何带有零个或一个连字符的引号,并且不匹配引号之外的任何文本。另外我应该提到,有些句子带有一个或多个连字符位于引号之外,我也需要忽略它们,并且不要让它们干扰我在引号中的匹配。我想将正确匹配的引号的双连字符更改为正确的破折号字符。
我尝试过使用lookaheads 和否定字符,但似乎无法弄清楚这一点。
这是regex 可以做的事情吗,还是我需要想出一些其他的方法(比如将所有文本拆分成一个数组并单步执行,进行更改,然后在结尾)?我可以这样做,但如果有一个单行正则表达式语句可以满足我的要求,这似乎是一种愚蠢的浪费时间。
【问题讨论】:
-
发布你尝试过的正则表达式
-
这就像我试过的那样,但如果引号外有连字符,它就会失败。 (将示例中未引用的句子变成双连字符句子,您会看到)。在过去的几天里,我实际上已经尝试了几十种排列方式,很抱歉我没有列出所有排列方式!
-
对不起,你试过了吗? regexr.com/3a34t引号外有-时不会失败..
-
这个例子没有像发布的那样工作,但是我能够修改它来让它做我需要的,非常感谢你为我指明了正确的方向!
-
欢迎来到 Stack Overflow!如果您已经解决了问题,请将其添加为答案或接受下面的答案。这让其他人知道这个问题已经解决了。