Emacs `org emphasis regexp components`:此列表中的条目是否有未记录的要求?

Emacs `org emphasis regexp components`:此列表中的条目是否有未记录的要求?,emacs,org-mode,Emacs,Org Mode,快速提出我的问题:对于列表中的条目org emphasis regexp components,特别是前两个条目pre和post(分别列出了强调文本前和强调文本后允许的字符),是否有一些不成文的要求 我以前看过关于这个列表的讨论,特别是在, 但我似乎遇到了某种未记录的边缘案例,阻止了我的编辑工作 现在,我的具体背景。我正在试图找到一种易于阅读的方法来允许 强调文本前的空格、开头分隔符和破折号,以及 强调文本后的空格、结束分隔符、破折号和点号 为此,我已制定了 “[:空格:”({[“-–-”

快速提出我的问题:对于列表中的条目
org emphasis regexp components
,特别是前两个条目
pre
post
(分别列出了强调文本前和强调文本后允许的字符),是否有一些不成文的要求

我以前看过关于这个列表的讨论,特别是在, 但我似乎遇到了某种未记录的边缘案例,阻止了我的编辑工作

现在,我的具体背景。我正在试图找到一种易于阅读的方法来允许

  • 强调文本前的空格、开头分隔符和破折号,以及
  • 强调文本后的空格、结束分隔符、破折号和点号
为此,我已制定了

  • “[:空格:”({[“-–-”
    用于
    pre
  • “[:空格:)}]”-–-.?!;:“
    对于
    post
    , 我认为这是一种可读的方式(见下文)
使用这些设置,在强调文本之前放置空格、左括号
、括号
[
或大括号
{
)不会影响强调。但是放置任何其他字符都会影响强调。我希望左双引号
、破折号
-
、endash
-
和emdash
-
应该可以工作,因为它们包含在
pre
中,但它们不工作。”

在强调的文本后放置任何字符都会破坏强调

下面是设置值的实际代码

(setcar组织强调regexp组件
(康卡特)
“[:空格:”
(弦

;;开始分隔符;注释防止match parens发疯写下这个问题后,我立即做了我本来应该做的事情,并尝试在
中添加更少的字符。瞧,原来是
[
]
,以及导致问题的
-
条目

请更仔细地注意前面讨论的
org emphasis regexp components
(),这些字符串以某种方式组合成一个大型复杂的正则表达式。错误的括号和破折号可能会被误认为是该正则表达式中的特殊字符,从而导致问题

按照per的评论,实际上需要遵循正则表达式的约定,所以

  • 如果包含破折号
    -
    ,则它必须是字符串的第一个或最后一个元素,并且
  • 如果包含右大括号
    ]
    ,则它必须是字符串的第一个元素
  • 当所有的话都说完了,下面是问题中字符集的适当的
    pre
    post

    • pre
      “[:空格:”({“[-–-”
    • post
      “][:空格:)}”?,;:–--“
    以及生成这些字符串的代码(我相信非常可读)

    (setcar组织强调regexp组件
    (康卡特)
    ;所有空白字符。
    “[:空格:”
    (弦
    
    ;开头分隔符;注释防止复选框发疯这些是对regexp的一般限制,与
    org emphasis regexp组件
    无关。请参见引用:
    要在字符替换中包含“]”,必须将其作为第一个字符。例如,“[]a] '匹配']'或'a'。若要包含'-',请将'-'写为可选字符的第一个或最后一个字符,或作为范围的上限。因此,'[]-]'同时匹配']'和'-'。
    谢谢!在处理正则表达式时,我真的需要记得更仔细地阅读。按照要求,它很容易工作。我已经在回答中更正了要求和代码。这不应该在emacs SE中吗?