Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Utmaning!

Postades av 2005-08-29 15:06:07 - Ola Lindfeldt, i forum regular expressions, Tråden har 10 Kommentarer och lästs av 1655 personer

Kan man ordna detta RegEx?
Ta en lång textsträng (säg 2000 tkn)
splitta denna med radbryt efter 50 tkn.
- Men inte mitt i ett ord!
OM det finns mellanslag, punkt, komma, radbrytning,
20 tkn bakåt från den position radbrytningen annars skulle hamnat.
OM man bryter innan 50 (vilket sannolikt händer ofta) så måste man väl
börja om med att "räkna upp" till 50 från den senaste positionen, för resten av strängen....
phew.. tror inte man gör detta med ETT RegEx.. eller.. ? :)


Svara

Sv: Utmaning!

Postades av 2005-08-29 15:37:31 - Thomas Vanhaniemi

Intressant!

Men om man ska kunna lösa det (om det går) vill man gärna veta vilket språk RegEx:en ska köras genom så man vet vad som är tillåtet...

Dessutom, hänger inte riktigt med i din beskrivning, ge lite exempel?
Ska den bryta mitt i ett ord om det inte finns mellanslag, punkt, komma eller radbrytning 20 tecken efter positionen där brytningen skulle hamna?

Behöver du ett mönster eller är det bara en allmän utmaning? ;)


Svara

Sv: Utmaning!

Postades av 2005-08-29 16:29:53 - Simon Dahlbacka

det låter nog som om du inte vill använda en regex för det där.. hmm.. handlade inte en veckans fråga om just det här för ett tag sen?


Svara

Sv:Utmaning!

Postades av 2005-08-29 16:50:32 - Johan Svensson

Hej,

Detta har behandlats i en annan tråd tidigare: http://www.pellesoft.se/communicate/forum/view.aspx?msgid=174222

Där finns både kodexempel och regex exempel att modifiera för detaljerna i just detta behovet.

Lycka till!


// Johan


Svara

Sv: Utmaning!

Postades av 2005-08-29 16:59:06 - Thomas Vanhaniemi

Ja, där är ju min lösning i RegEx =)
Tänkte leta reda på den, men gick till affären före...


Svara

Sv:Utmaning!

Postades av 2005-08-29 17:04:59 - Ola Lindfeldt

Thomas: Jag är ute efter kod som funkar för antingen Javascript eller DotNet.
Men det är främst RegExp trixet jag vill lära mig (kan antagligen översätta det om det är annan dialekt)

Den kan få bryta mitt i ett ord OM det skulle finnas ett ord på mer än 20 tecken....
Sannolikheten att man skriver in ord som är mer än 20 tecken är så liten så det kan man leva med..... (eller så kan man ju för den delen välja 40 tecken.... :)
Det är nåt jag behöver - samtidigt som jag vill lära mig mer avancerade RegEx trix och därför frågar jag här... Det verkar som att ditt tips i den andra tråden kan vara till hjälp. Jag ska titta närmare på det.
Tackar!

EDIT:
Har testat nu men det funkar inte riktigt som jag hade tänkt:

<code>

Dim RegExp As RegExp
Dim Text As String
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Global = True
RegExp.IgnoreCase = True
RegExp.Pattern = "(.{0,15})(?:,\s|$)"

Text = "Mönster för att radera bort alla nya rader i början och slut på texten. Aaaaaaaaa. Mönster för att radera bort alla nya rader i början och slut på texten. Aaa. Mönster för att radera bort alla nya rader i början och slut på texten."
Text = RegExp.Replace(Text, "$1" + vbCrLf)

'Mönster för att radera bort alla nya rader i början och slut på texten.
RegExp.Pattern = "^(?:\r?\n)*([\w\W]+?)(?:\r?\n)+$"
Text = RegExp.Replace(Text, "$1")
Set RegExp = Nothing
MsgBox (Text)
</code>

Detta borde blivit
<code>
Mönster för att
radera bort
alla nya rader
i början och
slut på texten.
</code>
Osv. (alltså när jag valde 15 tkn för att testa..)
:)

Dvs: en snyggt genomförd radbrytning helt enkelt..
Men det blir det ju inte...


Svara

Sv: Utmaning!

Postades av 2005-08-29 17:39:43 - Thomas Vanhaniemi

[Begränsa raders längd med Reguljära Uttryck]

Ovan har jag lagt in ett tips om hur man kan göra...
Dock i VB, men det är ju inte svårt att skriva om den till .NET eller Javascript.


Svara

Sv: Utmaning!

Postades av 2005-08-29 19:04:54 - Thomas Vanhaniemi

Har du testat tipset jag skickade ovan?
Det är ordnat för att bryta mellan ord...

Om du vill fixa det du skrev här måste du ta bort kommat från mönstret...


Svara

Sv:Utmaning!

Postades av 2005-08-30 11:10:25 - Ola Lindfeldt

Thomas, jag får tyvärr fel
5017 Application-defined or object-defined error
på sista raden
<code>
RegExp.Pattern = "([\w\W]*)(?:\r?\n)$)"
Text = RegExp.Replace(Text, "$1")
</code>

Jag har kört koden i VB6, VBScript Regular Expressions 5.5


Svara

Sv: Utmaning!

Postades av 2005-08-30 11:18:35 - Thomas Vanhaniemi

Ops, ser en parentes för mycket, så det är nog där felet är...
Rättar till mitt tips så kan du försöka igen med den versionen =)


Svara

Sv:Utmaning!

Postades av 2005-08-30 12:41:54 - Ola Lindfeldt

Thomas, tack det funkar bra nu =)
Jag markerar detta som löst.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
778
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies