2015-11-25 4 views
1

Я хотел бы удалить определенную строку из документа. Мне удается удалить содержимое строки, но разрыв строки остается после. Я нашел кое-что о ControlCharacters, но кажется, что это только числовые константы. Это действительно полезно?Поиск строк и разрывов строк с pyUNO

Это работает.

r = oDoc.createReplaceDescriptor() 
r.setSearchString("FOOBAR") 
r.setReplaceString("OTHERSTUFF") 
oDoc.replaceAll(r) 

Это не

r = oDoc.createReplaceDescriptor() 
r.setSearchString("FOOBAR\n") 
r.setReplaceString("OTHERSTUFF") 
oDoc.replaceAll(r) 
r = oDoc.createReplaceDescriptor() 
r.setSearchString("FOOBAR\r") 
r.setReplaceString("OTHERSTUFF") 
oDoc.replaceAll(r) 

Как удалить всю строку, в том числе разрыв строки?

ответ

1

Согласно встроенной помощи:

Поиск с помощью регулярных выражений будет работать только в пределах одного пункта. Чтобы выполнить поиск с использованием регулярного выражения в более чем одном пункте , выполните отдельный поиск в каждом абзаце.

Я интерпретирую это как означающее, что символы новой строки не могут быть найдены. Вместо этого просмотрите результаты поиска и удалите символ. Вот код, который делает это:

search = oDoc.createSearchDescriptor() 
search.SearchRegularExpression = True 
search.SearchString = "FOOBAR$" 
selsFound = oDoc.findAll(search) 
for sel_index in range(0, selsFound.getCount()): 
    oSel = selsFound.getByIndex(sel_index) 
    try: 
     oCursor = oSel.getText().createTextCursorByRange(oSel) 
    except (RuntimeException, IllegalArgumentException): 
     return 
    oCursor.setString("") # delete 
    oCursor.goRight(1, True) # select newline character 
    oCursor.setString("") # delete 

 Смежные вопросы

  • Нет связанных вопросов^_^