python翻译中的正则表达式
我刚刚开始了解正则表达式在python中的工作原理,但其中的一些语法让我有些困惑 如何将以下正则表达式转换为python中re模块可以使用的正则表达式python翻译中的正则表达式,python,regex,Python,Regex,我刚刚开始了解正则表达式在python中的工作原理,但其中的一些语法让我有些困惑 如何将以下正则表达式转换为python中re模块可以使用的正则表达式 a(b|c)*a 符号是什么并不重要,我更多的是问括号和运算符,它们是如何工作的 如果我要具体说明我的情况,我将尝试从两个尖括号中捕获所有文本。根据我阅读的一些参考资料,“.”字符匹配除换行符以外的任何字符,“s”匹配包括换行符在内的任何空格,因此我认为这样做的方法是: <[.|s]*> 但显然我错了 我对我的具体问题的解决方
a(b|c)*a
符号是什么并不重要,我更多的是问括号和运算符,它们是如何工作的
如果我要具体说明我的情况,我将尝试从两个尖括号中捕获所有文本。根据我阅读的一些参考资料,“.”字符匹配除换行符以外的任何字符,“s”匹配包括换行符在内的任何空格,因此我认为这样做的方法是:
<[.|s]*>
但显然我错了
我对我的具体问题的解决方案感兴趣,但是如果您能提供python正则表达式中运算符的一般信息,我将不胜感激
编辑:
经过更多的实验后,我使用:
<.*>
当我有像这样的文字
<foo bar>
但不是因为我有
<foo
bar>
然而当我尝试
<[\n.]*>
什么都不管用。所以我想可能是括号在做什么,所以我试着:
<[.]*>
这甚至不像
那样有效。。但肯定的是,除了括号外,两者是相同的
有人有什么想法吗?我希望能够捕获所有文本,如:
<foo
bar>
a(b|c)*a
可直接用作Python re<代码>是一团混乱[
..]
是一个字符范围:|
内部没有业务s
在Python正则表达式中不表示空格;相反,\s
会。也许你把这里的|s
和\s
搞混了(但是在这里只使用\n
和/或使用相应的标志让
也匹配一个换行符会更有意义)。a(b | c)*a
可以直接用作Python代码<代码>是一团混乱[
..]
是一个字符范围:|
内部没有业务s
在Python正则表达式中不表示空格;相反,\s
会。也许你把这里的|s
和\s
搞混了(但是在这里只使用\n
和/或使用相应的标志让
也匹配一个换行符会更有意义)。a(b | c)*a
可以直接用作Python代码<代码>是一团混乱[
..]
是一个字符范围:|
内部没有业务s
在Python正则表达式中不表示空格;相反,\s
会。也许你把这里的|s
和\s
搞混了(但是在这里只使用\n
和/或使用相应的标志让
也匹配一个换行符会更有意义)。a(b | c)*a
可以直接用作Python代码<代码>是一团混乱[
..]
是一个字符范围:|
内部没有业务s
在Python正则表达式中不表示空格;相反,\s
会。可能您在这里混淆了|s
和\s
(但是在这里只使用\n
和/或使用相应的标志使
也匹配一个换行符会更有意义)。这里清楚地记录了python正则表达式语法:
对于您的特殊情况,我会尝试以下方法:
import re
pat = re.compile('<([^>]*)>')
match = pat.search('Foo <bar> bam')
print match.groups()
# should print ('bar',)
重新导入
pat=re.compile(']*)>')
match=pat.search('Foo-bam')
打印match.groups()
#应打印('bar',)
为了理解正则表达式,我们可以将其分解为以下组成部分:
- <-匹配左角支架
- (-组的开始)
- [^>]*-匹配类([^>])中的0个或多个字符(*)。字符类([]) 以插入符号(^)开头的字符表示匹配非部分字符 在这种情况下,类由单个 字符,右括号(>)
- )-结束小组
- >-匹配直角支架
import re
pat = re.compile('<([^>]*)>')
match = pat.search('Foo <bar> bam')
print match.groups()
# should print ('bar',)
重新导入
pat=re.compile(']*)>')
match=pat.search('Foo-bam')
打印match.groups()
#应打印('bar',)
为了理解正则表达式,我们可以将其分解为以下组成部分:
- <-匹配左角支架
- (-组的开始)
- [^>]*-匹配类([^>])中的0个或多个字符(*)。字符类([]) 以插入符号(^)开头的字符表示匹配非部分字符 在这种情况下,类由单个 字符,右括号(>)
- )-结束小组
- >-匹配直角支架
import re
pat = re.compile('<([^>]*)>')
match = pat.search('Foo <bar> bam')
print match.groups()
# should print ('bar',)
重新导入
pat=re.compile(']*)>')
match=pat.search('Foo-bam')
打印match.groups()
#应打印('bar',)
为了理解正则表达式,我们可以将其分解为以下组成部分:
- <-匹配左角支架
- (-组的开始)
- [^>]*-匹配类([^>])中的0个或多个字符(*)。字符类([]) 以插入符号(^)开头的字符表示匹配非部分字符 在这种情况下,类由单个 字符,右括号(>)
- )-结束小组
- >-匹配直角支架
import re
pat = re.compile('<([^>]*)>')
match = pat.search('Foo <bar> bam')
print match.groups()
# should print ('bar',)
重新导入
pat=re.compile(']*)>')
match=pat.search('Foo-bam')
打印match.groups()
#应打印('bar',)
到