用python编写正则表达式

用python编写正则表达式,python,regex,python-2.7,Python,Regex,Python 2.7,我一直在尝试为此编写正则表达式,但到目前为止未能成功 _ any thing\_ fdfdf \_ any thing_ 然后在所有字符下划线,直到 \\是转义字符,因此正则表达式必须接受如下字符串 _ any \_ thing _ 以下字符串: checking_ happens \_ ano\_ther _ test of bold _ and escape \_asteric 应提供: _ happens \_ ano\_ther _ 到目前为止,我只能得出以下结论: (\\_)|

我一直在尝试为此编写正则表达式,但到目前为止未能成功

_ any thing\_ fdfdf \_ any thing_
然后在所有字符下划线,直到

\\
是转义字符,因此正则表达式必须接受如下字符串

_ any \_ thing _
以下字符串:

checking_ happens \_ ano\_ther _ test of bold _ and escape \_asteric
应提供:

_ happens \_ ano\_ther _
到目前为止,我只能得出以下结论:

(\\_)|_[^_]*[\\_]*[_]
这就是工作:

(?<!\\)(?:\\\\)*_((?:[^_\\]|\\.)+)_
(?
分解它:

  • (?-匹配偶数个反斜杠,前面没有更多反斜杠
  • -后跟下划线
  • (((?:[^\u\\]\ 124;\\)+)
    -匹配以下1次或多次
    • [^ \\]
      -除下划线或反斜杠以外的任何字符
    • \.
      -任何反斜杠/字符对(例如
      \\
      \
  • -匹配尾随下划线

这将捕获第一组中下划线之间的字符串。

您是否可以更清楚地了解输入和所需输出?您是否可以更具体一些?您是否希望“any”thing返回any或any?您是否对stackoverflow标记有问题?如果缩进示例4个空格,标记将不会触及uNDERSCORE或反斜杠。感谢@Eric我在stackoverflow降价方面遇到了问题。我现在在问题中添加了更多细节。再次感谢@Eric。在开始使用(?
(?:…)时忽略\\的想法很好。
(…)
,但不创建捕获组。另外,我一开始也不会忽略
\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
将失败。@hajidon:好的,现在它适用于
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。。。