【问题标题】:Regex using Negative lookbehind and Negative lookahead assertion [duplicate]使用负后瞻和负前瞻断言的正则表达式 [重复]
【发布时间】:2012-08-29 10:35:47
【问题描述】:

可能重复:
Regex matching left single quotation outside the double quotations

第一注:

&ldquo - left double quote (")
&rdquo - right double quote (")
&lsquo - left single quote (')
&rsquo - right single quote (')

我需要匹配所有不在左右双引号内的“左单引号”。

澄清:

  1. 这是“sample &lsquo string &rsquo &rdquo -> 这不应该匹配,因为&lsquo(单引号)在双引号内

  2. 这是&lsquo sample &rsquo -> &lsquo 应该匹配,因为它不在双引号内

这是我当前的正则表达式:

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

这个问题是,它同时查看&amp;ldquo&amp;rdquo,如果出现ldquo和rdquo中的任何一个,它将不匹配

例如:

  1. 这是&amp;lsquo sample &amp;rdquo -> 我需要在这里匹配 &lsquo 但由于 &rdquo 的出现,正则表达式不匹配

  2. 这是&amp;ldquo a string &amp;lsquo sample -> 与第一个示例相同的问题

希望有人可以帮助我!谢谢!

【问题讨论】:

  • “内部”引号不同于“后面有双引号”。我假设您确实想在&amp;lsquo &amp;ldquo &amp;rdquo 中匹配&amp;lsquo。另外,实体名称后面不应该有分号吗?
  • 这是你第二次问这个
  • 是的,因为我仍然没有修复它。 :(
  • 那你为什么将问题标记为已回答?

标签: c# .net regex lookahead lookbehind


【解决方案1】:

未经测试,但试试这个

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

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多