为什么';下面的正则表达式在Python中不起作用吗?

为什么';下面的正则表达式在Python中不起作用吗?,python,regex,Python,Regex,我有以下代码: regularexpression = r'([-\w]*\w)? ?: ?([-"\#\w\s_]*\w?);' outputfr = re.findall(regularexpression, inputdata, re.IGNORECASE) return data 它应该捕捉以“;”结尾的单词、连字符和其他字符。因此: (hello九:hello六,七;hello五:六八)将输出为[(“hello九”,“hello六,七”),(“hello五”,“六八”) 如果fina

我有以下代码:

regularexpression = r'([-\w]*\w)? ?: ?([-"\#\w\s_]*\w?);'
outputfr = re.findall(regularexpression, inputdata, re.IGNORECASE)
return data
它应该捕捉以“;”结尾的单词、连字符和其他字符。因此:

(hello九:hello六,七;hello五:六八)
将输出为[(“hello九”,“hello六,七”),(“hello五”,“六八”)

如果
final number:“七十”、“六十”、“五十”、“四十”是用户输入(inputdata)的一部分,则regularexpression无法捕获它。我希望它输出为
[(“final-number”,“七十”、“六十”、“五十”、“四十”)]


这是为什么?

在正则表达式中,第二组:

([-"\#\w\s_]*\w?)
需要更改以使其与逗号匹配:

([-"\#\w\s_,]*\w?)

在正则表达式中,第二组:

([-"\#\w\s_]*\w?)
需要更改以使其与逗号匹配:

([-"\#\w\s_,]*\w?)

您的示例输入->输出不一致。在第一种情况下,逗号分隔的项保留在一起,但在第二种情况下,它们是单独的列表元素。此外,是否要去掉括号?引号?请给出
inputdata
的实际值,并显示您想要返回的确切内容(包括去除引号、括号)。从不分配
数据
变量

使用
.split(“;”)
可能是一个更好的起点

inputdata = "(hello-nine: hello, six, seven; hello-five: six eight)"
mylist = inputdata.split(";")
# here either use regexp or another split, depending on what you want...
subset = [x.split(":") for x in mylist]

您的示例输入->输出不一致。在第一种情况下,逗号分隔的项保留在一起,但在第二种情况下,它们是单独的列表元素。此外,是否要去掉括号?引号?请给出
inputdata
的实际值,并显示您想要返回的确切内容(包括去除引号、括号)。从不分配
数据
变量

使用
.split(“;”)
可能是一个更好的起点

inputdata = "(hello-nine: hello, six, seven; hello-five: six eight)"
mylist = inputdata.split(";")
# here either use regexp or another split, depending on what you want...
subset = [x.split(":") for x in mylist]

请您解释一下正则表达式应该捕获什么。并提供一个实际的例子,说明
inputdata
,您希望匹配的内容以及您实际得到的内容。对不起,我刚刚添加了更多信息。您的模式不处理输入字符串中的逗号。请您解释一下正则表达式应该捕获什么。并提供一个实际的examp
inputdata
,您希望匹配的内容和实际得到的内容。对不起,我刚刚添加了更多信息。您的模式无法处理输入字符串中的逗号。