有没有更合理的方法来编写这个正则表达式?

2024-05-16 01:18:10 发布

您现在位置:Python中文网/ 问答频道 /正文

以下正则表达式是用Python方言编写的:

^(    )*#(\s+\S(.*\S)?)?$

有人能想出更好的办法吗?对于那些不确定它在说什么的人:

  • 和整条线吻合。你知道吗
  • 这些行以四个空格的任意倍数开始。你知道吗
  • 这些空格后面有一个哈希标记。你知道吗
  • 哈希标记后面要么是nothing,要么是以下内容:
    • 哈希标记后面至少有一个空格字符。你知道吗
    • 一个非空白字符位于这些字符之后。你知道吗
    • 要么什么都没有,要么接下来是:
      • 后跟任意数量的字符。你知道吗
      • 最后一个字符是非空白字符。你知道吗

能不能再简化一下?你知道吗

^(    )*#(\s.*\S)?$

Tags: 标记数量字符空白空格方言nothing倍数
2条回答

您可以始终使用^{}标志并将您在此处给出的解释添加为注释。:)

重写regexp以增强可读性(减少连续空格计数的机会)的一种方法:

^( {4})*#(\s.*\S)?$

用@Noctis的话来说,它缩短了编译器调试输出。你知道吗

(\s+\S(.*\S)?)?获取(\s.*\S)?的过程

\s+=>;\s(\s)*

\S(.*\S)?=>;\S\S.*\S=>;(\S.*)?\S

(\s+\S(.*\S)?)?=>;(\s(\s)*(\S.*)?\S)?=>;(\s.*\S)?因为(\s)*(\S.*)?=>;.*

相关问题 更多 >