正则表达式匹配双引号外的单引号

时间:2012-08-24 05:11:33

标签: c# .net regex lookbehind

注意:

左双引号(“)=& ldquo

右双引号(“)=& rdquo

左单引号(')=& lsquo

我目前的正则表达式是

(?<!.*&ldquo.*)&lsquo

它符合这里的&amp; lsquo(这是正确的):

&ldquoThis is a sample&rdquo &lsquosample text

它也符合这里的&amp; lsquo(我不想发生因为单引号在左右双引号内):

&ldquoThis &lsquois a sample&rdquo

如何编写一个匹配左右引文内的每个&amp; lsquo的正则表达式

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题......这可能是你想要的

(?<!&ldquo.*?)&lsquo(?!&rdquo)

答案 1 :(得分:0)

使用ASCII转义序列告诉正则表达式您指的是哪些字符。

  • \x93 - 指&amp; ldquo
  • \x94 - 指&amp; rdquo

所以你需要的正则表达式是:[\x93]*[^x94]

或者,如果您知道字符串包含哪些字符,那么:[A-Za-z0-9\x93]*[^x94],依此类推。根据需要添加更多字符。

答案 2 :(得分:0)

这是我正在看的正确的正则表达式:

(?<!.*&ldquo;)&lsquo;(?!.*&rdquo;)

谢谢!