2024-09-27 04:25:50 发布
网友
所以我有一根这样的线
<TEST>foo bar</TEST>
我想用正则表达式来提取foo-bar。你知道吗
我现在正在用这个,但不起作用
typesRegex = re.compile('<\w+>(\w+)<\w+>') typesRegex.match(testStr)
为什么?你知道吗
这个正则表达式更灵活,概念也更简单:“直到下一个开始的尖括号”
>>> import re >>> r = re.compile(r'<test>([^<]*)</test>', re.I) >>> r.search("<TEST>foo bar </test>").group(1) 'foo bar ' >>> r.search("<TEST>Charles Camille Saint-Saens</test>").group(1) 'Charles Camille Saint-Saens'
您应该注意到\w将不匹配-%@等。。。你知道吗
\w
-
%
@
您已经收到许多意见,阻止您自己解析HTML。但是我把我的答案贴出来是希望你能理解有限状态机在文本分析中的应用。HTH公司
因为\w与空格不匹配。你知道吗
foo bar包含空格。你知道吗
foo bar
同时</TEST>包含/,两者都不匹配\w。你知道吗
</TEST>
/
>>> re.match(r'<\w+>([\w\s]+)</\w+>', '<TEST>foo bar</TEST>') <_sre.SRE_Match object at 0x0000000002AFDBE8> >>> _.groups() ('foo bar',)
这个正则表达式更灵活,概念也更简单:“直到下一个开始的尖括号”
您应该注意到
\w
将不匹配-
%
@
等。。。你知道吗您已经收到许多意见,阻止您自己解析HTML。但是我把我的答案贴出来是希望你能理解有限状态机在文本分析中的应用。HTH公司
因为
\w
与空格不匹配。你知道吗foo bar
包含空格。你知道吗同时
</TEST>
包含/
,两者都不匹配\w
。你知道吗相关问题 更多 >
编程相关推荐