有人知道如何替换长度超过X位的单词的最后N个字母吗?

text = re.sub("[A-ZÀ-ÖØ-Ýà-öø-ÿa-z][A-ZÀ-ÖØ-Ýà-öø-ÿa-z]{7,}", "[\g<0>]", text)

这是我现在得到的输出字符串示例.

253.  Ficam [revogadas] a Lei nº 1.711, de 28 de outubro de 1952, e [respectiva] [legislação] [complementar], bem como as demais [disposições] em [contrário].

它在大于7个字母的单词周围放置一个[].

253.  Ficam revogada[s] a Lei nº 1.711, de 28 de outubro de 1952, e respectiv[a] legislaçã[o] complement[r], bem como as demais disposiçõe[s] em contrári[o].

推荐答案

您可以使用此正则表达式进行搜索:

(\b\w{6,})(\w)

使用:\1[\2]更换.

RegEx Demo

Code:

import re
text = '253.  Ficam revogadas a Lei nº 1.711, de 28 de outubro de 1952, e respectiva legislação complementar, bem como as demais disposições em contrário.'

print (re.sub(r'(\b\w{6,})(\w)', r'\1[\2]', text))

Output:

253. Ficam revogada[s] a Lei nº 1.711, de 28 de outubr[o] de 1952, e respectiv[a] legislaçã[o] complementa[r], bem como as demais disposiçõe[s] em contrári[o].

RegEx Details:

  • (\b\w{6,}):在捕获组#1中匹配单词边界,后跟6个以上的单词字符
  • (\w):匹配捕获组#2中的最后一个单词
  • \1[\2]:替换为放置第一个捕获组,然后将最后一个单词包装在[.]

Python相关问答推荐

Pandas 有条件轮班操作

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

将数据框架与导入的Excel文件一起使用

使可滚动框架在tkinter环境中看起来自然

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

Streamlit应用程序中的Plotly条形图中未正确显示Y轴刻度

对象的`__call__`方法的setattr在Python中不起作用'

什么是最好的方法来切割一个相框到一个面具的第一个实例?

如何排除prefecture_related中查询集为空的实例?

以逻辑方式获取自己的pyproject.toml依赖项

如何检测鼠标/键盘的空闲时间,而不是其他输入设备?

如何创建引用列表并分配值的Systemrame列

python sklearn ValueError:使用序列设置数组元素

如何过滤组s最大和最小行使用`transform`'

freq = inject在pandas中做了什么?''它与freq = D有什么不同?''

如果服务器设置为不侦听创建,则QWebSocket客户端不连接到QWebSocketServer;如果服务器稍后开始侦听,则不连接

从列表中分离数据的最佳方式

as_index=False groupBy不支持count

捕获脚本和退出代码的多行输出

Python-迭代PANAS中的数据框并替换列表中不包含字符串的值