Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需要帮助构建正则表达式吗_Python_Regex - Fatal编程技术网

Python 需要帮助构建正则表达式吗

Python 需要帮助构建正则表达式吗,python,regex,Python,Regex,我正在尝试构建一个正则表达式,它将捕获字符串开头的三种模式之一。我已经知道了如何捕捉每种模式,但还没有知道如何编写一个正则表达式来匹配这三种模式。以下是模式(每个模式的末尾都包含一个空格字符): R[eE]: R[eE]:\[a2geeks\] R[eE]:\[a2geeks\]R[eE]: 我觉得有一种优雅的方法可以做到这一点,但我已经为此奋斗了大约一个小时。最好的答案也会向我解释为什么它会起作用。这可能会起作用。()中包含的两个组是由?(=前面的一个或多个表达式)可选的。最后的R[eE]

我正在尝试构建一个正则表达式,它将捕获字符串开头的三种模式之一。我已经知道了如何捕捉每种模式,但还没有知道如何编写一个正则表达式来匹配这三种模式。以下是模式(每个模式的末尾都包含一个空格字符):

  • R[eE]:
  • R[eE]:\[a2geeks\]
  • R[eE]:\[a2geeks\]R[eE]:

我觉得有一种优雅的方法可以做到这一点,但我已经为此奋斗了大约一个小时。最好的答案也会向我解释为什么它会起作用。

这可能会起作用。
()
中包含的两个组是由
(=前面的一个或多个表达式)可选的。最后的
R[eE]
嵌套在一个较大的
()
组中,因为中间模式
[a2geek]
需要首先出现

^
表示模式应在字符串的开头匹配,而ned处的
*
则与此模式后面的字符串的其余部分匹配

^R[eE]:(\s\[a2geeks\](\sR[eE]:)?)?(.*)

这可能会起作用。
()
中包含的两个组由
(=前面的一个或多个表达式)设置为可选。最后的
R[eE]
嵌套在更大的
()
组中,因为中间模式
[a2geek]
需要首先出现

^
表示模式应在字符串的开头匹配,而ned处的
*
则与此模式后面的字符串的其余部分匹配

^R[eE]:(\s\[a2geeks\](\sR[eE]:)?)?(.*)
使用正则表达式(可选):

^R[eE]: (\[a2geeks\] (R[eE]:)?)?
使用正则表达式(可选):

^R[eE]: (\[a2geeks\] (R[eE]:)?)?

什么风格的正则表达式?什么语言?@Michael I…不知道有什么风格。但如果有帮助的话,这将出现在一些Python代码中。Perl、POSIX、SED有不同的语法。什么风格的正则表达式?什么语言?@Michael I…不知道有什么风格。但是如果有帮助的话,这将出现在一些Python代码中。有不同的语法Perl、POSIX、sedAh的语法,在看到它有完美的意义之后。确切的一个结果是非常微小的不同(
^R[eE]:\s(\[a2geeks\]\s(R[eE]:\s)?)?
),但是谢谢你。啊,在看到它有完美的意义之后。确切的一个结果是非常微小的不同(
^R[eE]:\s(\[a2geeks\]\s(R[eE]:\s))?
)谢谢。