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


asp.net - försöker ersätta sträng

Postades av 2004-02-05 20:05:43 - Pelle Johansson, i forum regular expressions, Tråden har 8 Kommentarer och lästs av 1608 personer

Hej,

Jag har en ursprungssträng för sökning - exempelvis "pelle AND soft". Jag vill sätta " , dvs chr(34) runt alla ord som INTE är i listan nedan, vad gör jag för fel?

<code>
Dim r As Regex
Dim m As Match
Dim y as String

Dim searchphrase As String = "pelle AND soft"

y = r2.Replace(searchphrase, "!(and not|and|or not|or)", Chr(34) & "$1" & Chr(34), RegexOptions.IgnoreCase Or RegexOptions.Compiled)
</code>

Jag vill att resultatet skall bli en sträng med alla ord inneslutna av " " som inte finns i listan ovan.

"pelle" AND "soft"

Tack på förhand


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-05 19:09:35 - Simon Dahlbacka

jag misstänker att negeringen med ! inte fungerar.
Kan man helt enkelt inte tänka sej så att du istället för att matcha allt utom and not, and, or not, or och sätter "fnuttar" runt det istället sätter matchar explicit and not, and, or not, or och ersätter dom med fnutt $1 fnutt, och om match hittades sätter till fnuttar i början och slutet av strängen?

beteendet vid t.ex. ord1 ord2 and not ord3 kommer att ändra, men vad är meningen: "ord1" "ord2" and not "ord3" eller "ord1 ord2" and not "ord3" ?

/Simon


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-06 08:53:15 - Pelle Johansson

Anledningen till denna udda fråga är att indexserverns reserverade ord, vilket inte är så många behöver just " runt sig för att tolkas korrekt när sql-satsen körs. Det är alltså ett 15-tal kombinationer man kan använda sig av och försökte mig på denna variant.


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-06 11:00:18 - Göran Andersson

Det finns ingen !-kod i regular expression.

Jag har inte hittat något sätt att matcha alla ord utom vissa, men du kan ju sätta citattecken runt alla ord, och sedan ta bort dem på de ord som inte ska ha dem:

y = r2.Replace(searchphrase, "(\S+)", """$1""", RegexOptions.IgnoreCase Or RegexOptions.Compiled)
y = y.Replace(searchphrase, """(and|or|not)""", "$1", RegexOptions.IgnoreCase Or RegexOptions.Compiled)


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-07 08:54:30 - Pelle Johansson

Det blir en felaktig väg. Kanske jag skall försöka förklara det med ett exempel istället för det brukar vara enklare. Microsoft Indexserver kan ta emot sql-satser för att söka något. Ex:

ftp and windows near vb and not delphi

Denna fråga skall nu köras in i en sql-sats för att köras mot indexservern. För att kunna skicka in frågan måste " markeras runt de ord som är nyckelord, dvs reserverade av indexservern för annars blir det fel. Så resultatet skall bli, då AND, NEAR AND NOT är reserverade ord

ftp "and" windows "near" vb "and not" delphi

Hoppas detta förtydligar vad jag vill uppnå via regexp. Dom reserverade orden får jag manuellt lägga till i en lista.


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-07 11:23:53 - Mikael Wedham

Så som du skrivit nu, så är det ju bara en replace av AND med "AND" o.s.v Jag misstänker att du vill ha det tvärt om.

/m


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-07 13:51:15 - Göran Andersson

Okej... Det är ju precis tvärtom mot exemplet du visade förut. Koden fungerar alldeles perfekt för det du sa att du ville ha den till...

y = r2.Replace(searchphrase, "(and not|near|and)", """$1""", RegexOptions.IgnoreCase Or RegexOptions.Compiled)


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-10 07:39:19 - Pelle Johansson

Å jag är förvirrad i skallen, ber om ursäkt. Det skall ju inte vara så.

Alla reserverade ord skall vara fria och gå på grönbete. Däremot skall de andra orden inneslutas så länge de inte finns med i listan. Alltså inte varje ord utan alla ord, tills ett reserverat ord kommer. Vi tar en längre fras.

exempel på ftp and not vb - > "exempel på ftp" and not "vb"
använda ado med refresh near asp -> "använda ado med refresh" near "asp"
1 2 3 4 and 5 not near 6 7 8 and 9 -> "1 2 3 4" and "5" not near "6 7 8" and "9"

Så skall det förstås vara. Ingen enkel uppgift men går säkert att lösa. Dom reserverade orden är såna man kan lägga till vartefter.


Svara

Sv: asp.net - försöker ersätta sträng

Postades av 2004-05-10 23:43:27 - Göran Andersson

Vet inte om det går att göra på ett smidigare sätt, men här är en funktion (i C#) som gör detta:

<code>
string QuoteWords(string query)
{
string word;
System.Text.StringBuilder result = new System.Text.StringBuilder();
int pos, next;
bool keyword;

keyword = true;
pos = 0;
while (pos < query.Length - 1)
{
next = query.IndexOf(' ', pos);
if (next == -1) next = query.Length;
word = query.Substring(pos, next - pos);
if (word=="and" || word=="not") {
if (!keyword) result.Append('"');
result.Append(' ');
result.Append(word);
keyword = true;
} else {
if (result.Length > 0) result.Append(' ');
if (keyword) result.Append('"');
result.Append(word);
keyword = false;
}
pos = next + 1;
}
if (!keyword) result.Append('"');
return result.ToString();
}
</code>

Jag har inte testat så väldigt många olika kombinationer, men den fungerar i alla fall oavsett om första och sista ordet är reserverat eller inte.

Kontrollen mot reserverade ord kan säkert göras lite flexiblare, men det funkar i alla fall. En start...


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 615
27 953
271 709
5 647
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