为什么';下面的正则表达式在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
,您希望匹配的内容以及您实际得到的内容。对不起,我刚刚添加了更多信息。您的模式不处理输入字符串中的逗号。请您解释一下正则表达式应该捕获什么。并提供一个实际的exampinputdata
,您希望匹配的内容和实际得到的内容。对不起,我刚刚添加了更多信息。您的模式无法处理输入字符串中的逗号。