gpt4 book ai didi

python - 具有任意数量空格的 '.' 分隔词的模式

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:59 25 4
gpt4 key购买 nike

这是我第一次在 Python 中使用正则表达式,但我无法让它工作。

这是我想要实现的目标:我想找到所有字符串,其中有一个单词后跟一个点,然后是另一个单词。之后未知数量的空格后跟 (off)(on)。例如:

word1.word2   (off)

这是我到目前为止的想法。

string_group = re.search(r'\w+\.\w+\s+[(\(on\))(\(off\))]', analyzed_string)

\w+ 第一个词

\. 为点

\w+ 表示第二个单词

\s+ 用于空格

[(\(on\))(\(off\))](off)(on)

我认为最后一个表达式可能没有按照我的需要去做。通过现在的实现,程序确实在字符串中找到了正确的位置,但是

的输出
string_group.group(0)

只是

word1.word2   (

而不是我正在寻找的整个表达式。你能告诉我我做错了什么吗?

最佳答案

[ ... ] 用于字符类,将匹配其中的任何 one 字符,除非您放置量词:[ ... ] + 一次或多次。

但是简单地添加是行不通的...

\w+\.\w+\s+[(\(on\))(\(off\))]+

也会匹配像 word1.word2 )(fno(nofn 这样的垃圾东西,所以你实际上不想使用字符类,因为它会以任何顺序匹配字符。什么您可以使用一个捕获组和一个非捕获组以及一个 OR 运算符 |:

\w+\.\w+\s+(\((?:on|off)\))

(?:on|off) 将匹配 onoff

现在,如果你不喜欢括号,也被夹在第一组中,你可以将其更改为:

\w+\.\w+\s+\((on|off)\)

关于python - 具有任意数量空格的 '.' 分隔词的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com