ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 13 Dez 2014, 12:06 
Offline
Meister

Registriert: 02 Jan 2010, 16:42
Beiträge: 204
Wohnort: Schweiz
Hallo zusammen,

wir wandeln gerade unsere Dokumente von Microsoft Word nach Latex um und möchten gerne in der Latex-Datei alle Abkürzungen gemäss dem Acro-Paket codieren. Dabei habe ich das Problem, dass bereits einige Latexdateien händisch bearbeitet wurde. ich möchte dies an folgendem Beispiel veranschaulichen:

Zitat:
Im Text gibt es die Abkürzung HRA oder (HPCS), wobei an einigen Abkürzungen im Text bereits
Bearbeitungen der Art \ac{HRA} oder \acs{ABC} oder \abp{RI} vorgenommen wurden.
QA ist hier bei besonders wichtig. :-)


Als Ergebnis hätte ich gerne:

Zitat:
Im Text gibt es die Abkürzung \ac{HRA} oder (\ac{HPCS}), wobei an einigen Abkürzungen im Text bereits
Bearbeitungen der Art \ac{HRA} oder \acs{ABC} oder \abp{RI} vorgenommen wurden.
\ac{QA} ist hier bei besonders wichtig. :-)


Die Vorgabe ist somit, alle Abkürzungen (XX+) zu ersetzen, die nicht bereits ersetzt wurden (\ac{XX+}, \acs{XX+}, \acp{XX+})

Mein erster Ansatz mit RegEx war wie folgt:


1
2
3
4
5
6
7
module Helper

def self.convert_to_ac(content)
content.gsub(/([ \/,\(])([A-Z]{2,})([ \-\.,;\)\/])/, "\\1\ac{\\2}\\3")
end

end

Und mein dazugehöriger Test sieht wie folgt aus:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  def test_convert_to_ac
src =<<-EOS
Im Text gibt es die Abk��rzung HRA oder (HPCS), wobei an einigen Abk��rzungen im Text bereits
Bearbeitungen der Art
\ac{HRA} oder \acs{ABC} oder \abp{RI} vorgenommen wurden.
QA ist hierbei besonders wichtig. :-)

EOS


target =<<-EOS
Im Text gibt es die Abk��rzungen
\ac{HRA} oder (\ac{HPCS}), wobei an einigen Abk��rzungen im Text bereits
Bearbeitungen der Art
\ac{HRA} oder \acs{ABC} oder \abp{RI} vorgenommen wurden.
\ac{QA} ist hierbei besonders wichtig. :-)
EOS


assert_equal target, Helper.convert_to_ac(src)
end


Meine Regex ist nicht ganz richtig. Hat jemand eine Idee? Eventuell liege ich mit meinem Lösungsansatz gänzlich daneben und es geht alles viel einfacher.

Gruss,

Jean

_________________


1
2
Betriebssysteme: Windows 10, Linux Mint 17.3
Rubyversion : 2.2.4-p230


Nach oben
 Profil  
 
BeitragVerfasst: 13 Dez 2014, 14:03 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Hallo!

Ich habe gerade keine Maschine mit Ruby verfügbar, hab daher mit der RegEx mal auf rubular.com rumgespielt. Probleme schienen die Abkürzungen am Anfang einer Zeile zu machen, ich habe daher einfach mal in deiner RegEx die Leerzeichen in der Gruppe vor und hinter der Abkürzung durch die Klasse [:space:] ersetzt, damit erwischt man jegliche Art von Whitespace:




content.gsub(/([[:space:]\/,\(])([A-Z]{2,})([[:space:]\-\.,;\)\/])/, "\\1\ac{\\2}\\3")

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 13 Dez 2014, 14:23 
Offline
Meister

Registriert: 02 Jan 2010, 16:42
Beiträge: 204
Wohnort: Schweiz
Hallo NobbZ,

herzlichen Dank! Der Hinweis mit [:space:] funktioniert einwandfrei.

By the way: Was genau bedeutet "jegliche Art von Whitespace"? Welche Arten von Whitespace gibt es denn noch ausser ein Leerzeichen?

_________________


1
2
Betriebssysteme: Windows 10, Linux Mint 17.3
Rubyversion : 2.2.4-p230


Nach oben
 Profil  
 
BeitragVerfasst: 13 Dez 2014, 15:40 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
JeanC hat geschrieben:
By the way: Was genau bedeutet "jegliche Art von Whitespace"? Welche Arten von Whitespace gibt es denn noch ausser ein Leerzeichen?


Es gibt vertikale und horizontale Tabstops, Zeilenumbrüche, non-breakable-space und warscheinlich noch weitere die mir gerade nicht einfallen. Und genau wegen letzterem greift man auf Zeichenklassen zurück.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron