如何更改代码以匹配任何字符而不仅仅是字母
How to change code to match any character and not just letters
我正在尝试匹配任何带有左括号的单词:'(',我想出了这个正则表达式,它到目前为止匹配带有左括号的单词但在另一个特殊字符(如点或出现右括号。我想匹配整个单词,直到出现 space。
re.compile(r'[a-zA-Z]*\([a-zA-Z]*', flags=re.IGNORECASE)
这样的东西能胜任吗?
r"\(([a-zA-Z]*) "
只要不使用代表开始和结束的 ^
和 $
符号,就不需要指定要匹配的模式之前或之后的内容字符串的结尾。
因此以您的示例为例,如果您对左括号之前的内容没有任何要求,那么您使用的第一组 [a-zA-Z]*
是无用的。此外,您还犯了另一个错误,因为在您的正则表达式中,您没有在第二个 [a-zA-Z]*
组之后放置 space 。因为要匹配左括号和 space 之间的每个单词,所以需要将 space 放在正则表达式字符串中。
编辑:解决问题的方法是这个([^ ]*\([^ ]*)
通读关于这个的评论以查看讨论
我正在尝试匹配任何带有左括号的单词:'(',我想出了这个正则表达式,它到目前为止匹配带有左括号的单词但在另一个特殊字符(如点或出现右括号。我想匹配整个单词,直到出现 space。
re.compile(r'[a-zA-Z]*\([a-zA-Z]*', flags=re.IGNORECASE)
这样的东西能胜任吗?
r"\(([a-zA-Z]*) "
只要不使用代表开始和结束的 ^
和 $
符号,就不需要指定要匹配的模式之前或之后的内容字符串的结尾。
因此以您的示例为例,如果您对左括号之前的内容没有任何要求,那么您使用的第一组 [a-zA-Z]*
是无用的。此外,您还犯了另一个错误,因为在您的正则表达式中,您没有在第二个 [a-zA-Z]*
组之后放置 space 。因为要匹配左括号和 space 之间的每个单词,所以需要将 space 放在正则表达式字符串中。
编辑:解决问题的方法是这个([^ ]*\([^ ]*)
通读关于这个的评论以查看讨论