Help me Ruby code schrijven voor het automatiseren van tekstverwerking
description
Met deze prompt kun je snel en efficiënt Ruby scripts maken die repetitieve tekstverwerkingstaken automatiseren, waardoor je tijd bespaart en fouten vermindert. Het helpt je om code te krijgen die makkelijk aan te passen is aan verschillende tekstbestanden en gebruiksscenario's.
prompt
Help me Ruby code te schrijven die tekstbestanden automatisch verwerkt voor de volgende taak: <beschrijf de tekstverwerkingstaak, bijvoorbeeld zoeken en vervangen, tekstextractie, of forma ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een Ruby-script dat alle datums in het formaat DD-MM-JJJJ zoekt en vervangt door JJJJ-MM-DD. Het script leest een tekstbestand in, voert de vervangingen uit en schrijft het resultaat weer weg. Het is gemakkelijk aanpasbaar voor verschillende bestanden en kan uitgebreid worden.
```ruby
# Definieer het pad naar het tekstbestand
bestand_pad = 'pad/naar/je/bestand.txt'
# Lees de inhoud van het bestand
inhoud = File.read(bestand_pad)
# Regex voor datums in formaat DD-MM-JJJJ
# Let op dat we ook datums in andere formaten kunnen hebben, dus specificeer het regex
datums = inhoud.scan(/\b(\d{2})-(\d{2})-(\d{4})\b/)
# Vervang alle gevonden datums naar JJJJ-MM-DD
nieuwe_inhoud = inhoud.gsub(/\b(\d{2})-(\d{2})-(\d{4})\b/) do |match|
dag, maand, jaar = $1, $2, $3
"#{jaar}-#{maand}-#{dag}"
end
# Schrijf de gewijzigde inhoud terug naar hetzelfde of een nieuw bestand
# Hier overschrijven we het originele bestand
File.open(bestand_pad, 'w') { |file| file.write(nieuwe_inhoud) }
```
**Hoe te gebruiken:**
1. Vervang `'pad/naar/je/bestand.txt'` door het daadwerkelijke pad naar jouw tekstbestand.
2. Run het script. Het zal automatisch alle datums in het bestand aanpassen.
**Voorbeeld:**
Originele regel:
```
User login at 01-06-2023 from user@example.com
```
Na uitvoering:
```
User login at 2023-06-01 from user@example.com
```
**Aanpassen voor meerdere bestanden:**
Je kunt een lus toevoegen om door meerdere bestanden te lopen, bijvoorbeeld:
```ruby
Dir.glob('pad/naar/je/bestanden/*.txt') do |bestand|
inhoud = File.read(bestand)
nieuwe_inhoud = inhoud.gsub(/\b(\d{2})-(\d{2})-(\d{4})\b/) do |match|
dag, maand, jaar = $1, $2, $3
"#{jaar}-#{maand}-#{dag}"
end
File.open(bestand, 'w') { |f| f.write(nieuwe_inhoud) }
end
```
Dit maakt het proces nog efficiënter en gemakkelijk aanpasbaar.
Heeft u meer hulp nodig?
provider: deepseek
model: deepseek-chat
Hier is een efficiënte Ruby-oplossing met regex voor datumconversie:
```ruby
require 'date'
def convert_dates_in_file(input_file, output_file = nil)
output_file ||= "converted_#{input_file}"
content = File.read(input_file)
# Regex om datums in DD-MM-JJJJ formaat te vinden
converted_content = content.gsub(/\b(\d{2})-(\d{2})-(\d{4})\b/) do |match|
day, month, year = $1, $2, $3
# Valideer of het een geldige datum is
if Date.valid_date?(year.to_i, month.to_i, day.to_i)
"#{year}-#{month}-#{day}" # Converteer naar JJJJ-MM-DD
else
match # Behoud origineel als geen geldige datum
end
end
File.write(output_file, converted_content)
puts "Bestand verwerkt: #{output_file}"
end
# Gebruiksvoorbeeld:
convert_dates_in_file("input.txt")
# of specificeer output bestand:
# convert_dates_in_file("input.txt", "output.txt")
# Voor batch verwerking van meerdere bestanden:
def process_multiple_files(file_pattern)
Dir.glob(file_pattern).each do |file|
convert_dates_in_file(file)
end
end
# Voorbeeld: alle .txt bestanden verwerken
# process_multiple_files("*.txt")
```
**Test met jouw voorbeeldtekst:**
```ruby
# Test met jouw voorbeeld
test_text = "User login at 01-06-2023 from user@example.com\nError reported by admin@domain.org on 15-12-2022"
converted = test_text.gsub(/\b(\d{2})-(\d{2})-(\d{4})\b/) do |match|
day, month, year = $1, $2, $3
Date.valid_date?(year.to_i, month.to_i, day.to_i) ? "#{year}-#{month}-#{day}" : match
end
puts converted
# Output: "User login at 2023-06-01 from user@example.com\nError reported by admin@domain.org on 2022-12-15"
```
**Belangrijke features:**
- ✅ Valideert datums (geen ongeldige datums zoals 32-13-2023)
- ✅ Behoudt originele tekst als geen geldige datum
- ✅ Eenvoudig aanpasbaar voor andere datumformaten
- ✅ Werkt met grote bestanden door efficiente regex
- ✅ Ondersteunt batch verwerking
**Gebruik:**
1. Sla de code op als `date_converter.rb`
2. Plaats je tekstbestanden in dezelfde map
3. Run: `ruby date_converter.rb`
De regex `\b(\d{2})-(\d{2})-(\d{4})\b` zorgt voor precieze matching van DD-MM-JJJJ formaten zonder valse positieven.