Использование поиска и замены текста в Python

Обратите внимание, что триангуляции Delaunay могут не соответствовать вашему приложению, поскольку триангуляции Delaunay не подходят для истинных 3D-проблем (т. е. где точки хорошо распределены в R3).

Для создания поверхностей в R3 рассмотрите работу Hugues Hoppe и его работу по «восстановлению поверхности».

Реконструкция поверхности используется для нахождения сетчатой ​​поверхности, соответствующей точечному облаку; однако этот метод дает высокие значения треугольников. Если это проблема, вы можете применить mesh метод сокращения, чтобы уменьшить количество полигонов, чтобы свести к минимуму ошибку. В качестве примера вы можете посмотреть методы декомпрессии OpenMesh.

Hugues Hoppe

OpenMesh

0
задан Natasha 28 February 2019 в 04:02
поделиться

2 ответа

Вы можете выполнить это с использованием регулярных выражений и без них. Вы можете просто добавить символ '-' в text_to_search и использовать поиск для поиска новой строки

lines = ['x  = vR32_ALEX - vR33_ALAN; \n',
 'y = vR33_ALAN; \n']

text_to_search = 'vR33_ALAN'
replacement_text = 'vR33_ALAN*c'

for line in lines:
  if line.find('- '+text_to_search)!=-1:
    print(line)
  else:
    print(line.replace(text_to_search, replacement_text),end='') 

Или вы можете использовать модуль re, как предложено, для этого вам нужно сгенерировать шаблон для искать, как вы ищете '-' или добавить text_to_search, как и раньше. (.*) указывает, что не имеет значения символы до и после шаблона.

import re 
lines = ['x  = vR32_ALEX - vR33_ALAN; \n',
 'y = vR33_ALAN; \n']

for line in lines:
  if re.match('(.*)'+' - '+'(.*)',line):
    print(line)
  else:
    print(line.replace(text_to_search, replacement_text),end='')  

Шаблон '(.*)'+' - '+text_to_search+'(.*)' также должен работать. Надеюсь, это поможет

0
ответ дан TavoGLC 28 February 2019 в 04:02
поделиться

Вы можете использовать re.sub с шаблоном негативного взгляда:

import re
lines = ['x  = vR32_ALEX - vR33_ALAN; \n',
 'y = vR33_ALAN; \n']
for line in lines:
    print(re.sub(r'(?<!- )vR33_ALAN', 'vR33_ALAN*c', line), end='')

. Вывод:

x  = vR32_ALEX - vR33_ALAN; 
y = vR33_ALAN*c; 
.
0
ответ дан blhsing 28 February 2019 в 04:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: