我在这里有一个例子:
>>> txt1
'fdf\\.\\..dgg'
我打算找到一个正则表达式,它会返回特殊符号。
所以我试过这个。
>>> ans=re.search("\w+[\|.]*\w+",txt1)
>>> ans.group()
'fdf'
\ w +会发现单词仍在继续。 [\ |。]应该找到\或。 (点)。该明星应该继续下一次入场。 再次,\ w +应该找到尾随的单词。
请指导这里有什么问题? 或者这个概念并不完全是我认为的...... 在此先感谢所有人.... 如你所见,这个想法不起作用。
答案 0 :(得分:1)
“我打算找一个能让我返回特殊符号的正则表达式。”
re.search(r"\w+([\\\.]*)\w+", txt1)
找到ans.group(1)
您需要的内容:
ans = re.search(r"\w+([\\\.]*)\w+", txt1)
ans.group(1)
# '\\.\\..'
[]
设计了一组字符(没有|
“或”),但您必须使用反斜杠\. -> \\\.
来反转斜杠和点以匹配它。
答案 1 :(得分:1)
如果您想在那里找到不是字母数字的任何内容(包括空格),请使用:
[^\w]+
答案 2 :(得分:1)
您不能在字符类中使用交替运算符|
。在[ ]
内,管道代表该字符。你的反斜杠逃脱它(不必要)所以你正在寻找管道或点。你想要的是
ans=re.search(r"\w+[\\.]*\w+", txt1)
答案 3 :(得分:0)
由于您要查找特殊符号,re.findall(r"[a-z]*([.\\] ?)[a-z]*", txt1)
会将您的符号作为列表返回。您可以根据需要始终join()
(示例如下所示):
>>>
>>> txt1
'fdf\\.\\..dgg'
>>> ans = re.findall(r"[a-z]*([.\\] ?)[a-z]*", txt1)
>>> ans
['\\', '.', '\\', '.', '.']
>>>
>>> "".join(ans)
'\\.\\..'
>>>