我有下面的正则表达式
re.findall('\(([0-9].*?)\)', a[a.find('('):].strip())
为字符串定义,如
asdasdasd (21345-asdasdasd)
检索括号内后跟数字的内容。但我也希望能够检索到里面的内容,后面跟着“NA”字符串,比如:
asdasdasd (NA-asdasdasd)
我试过:
re.findall('\(([0-9].*?)\)|\((NA.*?)\)', a[a.find('('):].strip())
但是产生一个元组。会怎么样?提前谢谢
Tags:
当括号内的文本以数字/
NA
开头,后跟-
和除(
和)
以外的任何其他字符时,可以使用参见regex demo
细节
\(
-a(
((?:[0-9]+|NA)-[^)]*)
-捕获组(此值将由re.findall
返回):(?:[0-9]+|NA)
-1个或更多数字或NA
-
-连字符[^)]*
-0+字符,而不是)
\)
-a)
字符李>参见Python demo:
输出:
相关问题 更多 >
编程相关推荐