首页 > 解决方案 > 正则表达式从开头或结尾的空格或其他字符中清除字符串(带重音符号)和数字

问题描述

我正在使用带有 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}]$

但这没有用。我看到了很多解决方案,但不匹配字符串的开头和结尾与重音字符。

提前致谢。

标签: pythonregexpyspark

解决方案


也许,我们可以查看您拥有的数据,然后我们会编写一些类似于以下内容的表达式:

(?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']

推荐阅读