我试图用BS4提取一些数据,但我对返回的内容有些麻烦。我需要一些正则表达式来删除' \ n'来自字符串,但仅当它被字母包围时,或者它不在字符串的开头或结尾时。
示例:
\nLorem ipsum do\nlor sit amet \n
我希望以:
返回\nLorem ipsum dolor sit amet \n
正则表达式对我来说就像黑魔法一样,所以我所做的每一次尝试都匹配太多或根本没有。
我尝试过的事情:
https://regex101.com/r/opRffh/3 - 匹配' o \ nl',两边都有一到多个字符。
我应该用什么正则表达式来实现这个目标?
答案 0 :(得分:0)
您可以在匹配\n
时使用外观:
(?<=[a-zA-Z])\n(?=[a-zA-Z])
<强>解释强>
(?<=[a-zA-Z])
:断言断言我们在前一个位置有一封信\n
:匹配换行符(?=[a-zA-Z])
:预见断言我们在下一个位置有一封信<强>代码:强>
>>> str = ("\n"
... "Lorem ipsum do\n"
... "lor sit amet \n")
>>> print re.sub(r"(?<=[a-zA-Z])\n(?=[a-zA-Z])", '', str)
Lorem ipsum dolor sit amet
>>>