python - 正则表达式从开头或结尾的空格或其他字符中清除字符串(带重音符号)和数字
问题描述
我正在使用带有 spark 的 python来处理一些带有葡萄牙语重音词的数据。
一些数据示例如下:
.. -- Água, 1234 ...
- -- https://www.example.com/page.html *****
我正在尝试从字符串的左侧或右侧删除不是单词或数字的任何内容,得到如下干净的结果:
Água, 1234
https://www.example.com/page.html
我能做的最好的是:
^[^\\p{N}\\p{L}]]|[^\\p{N}\\p{L}]$
但这没有用。我看到了很多解决方案,但不匹配字符串的开头和结尾与重音字符。
提前致谢。
解决方案
也许,我们可以查看您拥有的数据,然后我们会编写一些类似于以下内容的表达式:
(?i)\S[a-z].+[a-z0-9]
或者,
(?i)\S*[a-z].+[a-z0-9]
演示
如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。
测试
import re
regex = r"(?i)\S[a-z].+[a-z0-9]"
string = """
.. -- Água, 1234 ...
- -- https://www.example.com/page.html *****
"""
print(re.findall(regex, string))
输出
['Água, 1234', 'https://www.example.com/page.html']