Hitta och ersätta text med hjälp av reguljära uttryck (avancerat)

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Du kan automatisera många "sök och ersätt"-åtgärder genom att använda jokertecken för att skapa reguljära uttryck, som är kombinationer av textsträngar och jokertecken.

Du kan till exempel använda reguljära uttryck om du vill söka efter och ta bort dubblettrader i en stor tabell eller om du vill transponera en lista med namn (ändra dem från "första, sista" till "sista, första").

Artikelinnehåll

Villkor

Prova själv!

Så här fungerar reguljära uttryck

Jokertecken för objekt du vill söka och ersätta

Använda jokertecken för att söka och ersätta text

Tillgängliga jokertecken

Reguljära uttryck i praktiken

Exempel 1: Transponera namn med initialer för mellannamn

Uttrycket del för del

Exempel 2: Transponera datum

Uttrycket del för del

Använda listavgränsare i reguljära uttryck

Exempel 3: Lägga till eller ta bort punkter i hälsningsfraser

Exempel 4: Hitta dubblettstycken eller -rader

Fler exempel

Om författarna

Villkor

Vi börjar med att definiera några termer:

  • Ett jokertecken är ett tecken på tangentbordet som du kan använda för att representera ett eller flera tecken. Exempelvis representerar asterisken (*) vanligtvis ett eller flera tecken och frågetecknet (?) representerar oftast ett enskilt tecken.

  • I vårt fall är ett reguljärt uttryck en kombination av textsträngar och jokertecken som du använder för att söka efter och ersätta textmönster. Textsträngen representerar text som måste finnas i målsträngen. Jokertecknen representerar texten som kan variera i målsträngen.

Överst på sidan

Prova själv!

Stegen i det här avsnittet förklarar hur du använder ett reguljärt uttryck som transponerar namn. Tänk på att du alltid använder dialogrutan Sök och ersätt när du kör reguljära uttryck. Tänk också på att om ett uttryck inte fungerar som förväntat kan du alltid trycka på CTRL+Z för att ångra ändringarna och sedan försöka med ett annat uttryck.

Så här transponerar du namn

  1. Starta Word och öppna ett nytt, tomt dokument.

  2. Kopiera den här tabellen och klistra in den i dokumentet.

Josh Barnhill

Doris Hartwig

Tamara Johnston

Daniel Shimshoni

  1. Öppna dialogrutan Sök och ersätt genom att klicka på Ersätt i gruppen Redigering på fliken Start.

    Menyfliksområdet i Office 14

  2. Om kryssrutan Använd jokertecken inte visas klickar du på Mer och markerar kryssrutan. Om du inte markerar kryssrutan behandlas jokertecknen som text i Word.

  3. Skriv följande tecken i rutan Sök efter. Glöm inte blanksteget mellan de två parentesuppsättningarna:

    (<> *) (<> *)

  4. Skriv följande tecken i rutan Ersätt med. Glöm inte blanksteget mellan kommatecknet och det andra snedstrecket:

    \2, \1

  5. Markera tabellen och klicka på Ersätt alla. Namnen transponeras i Word och avgränsas med ett komma:

Barnhill, Josh

Hartwig, Doris

Johnston, Tamara

Shimshoni, Daniel

Nu kanske du undrar vad du gör om några eller alla namn innehåller initialer för mellannamn. Mer information finns i det första exemplet i avsnittet Reguljära uttryck i praktiken.

Överst på sidan

Så här fungerar reguljära uttryck

Kom ihåg att dokumentets innehåll bestämmer större delen (men inte hela) av de reguljära uttryckens design. Exempelvis innehåller exempeltabellen som du använde tidigare två ord. Om cellen i stället skulle innehållit två ord och en initial för ett mellannamn skulle du ha använt ett annan uttryck.

Nu ska vi undersöka varje uttryck i detalj:

I det första uttrycket, (<*>) (<*>):

  • Asterisken (*) returnerar all text i ordet.

  • Symbolerna för mindre än och större än (< >) anger början respektive slutet av varje ord. De ser till att ett enskilt ord returneras från sökningen.

  • Parenteserna och blanksteget mellan dem delar upp orden i separata grupper: (första ordet) (andra ordet). Parenteserna anger också i vilken ordning du vill att varje uttryck ska utvärderas i sökningen.

Med andra ord beordrar uttrycket: "Hitta båda orden".

I det andra uttrycket, \2, \1:

  • Snedstrecket (\) används med talen och fungerar som en platshållare. (Du kan också använda snedstreck om du vill söka efter andra jokertecken. Mer information finns i nästa avsnitt.)

  • Kommatecknet efter den första platshållaren infogar rätt skiljetecken mellan de transponerade namnen.

Med andra ord beordrar uttrycket: "Skriv ett andra ord, lägg till ett komma, skriv det första ordet".

Överst på sidan

Jokertecken för objekt du vill söka och ersätta

Du kan använda jokertecken för att söka efter text. Du kan till exempel använda en asterisk (*) för att söka efter en teckensträng (till exempel "s * d" returnerar "Syd" och "startad").

Använda jokertecken för att söka och ersätta text

  1. Klicka på pilen bredvid Söki gruppen Redigeringpå fliken Startoch sedan på Avancerad sökning.

    Menyfliksområdet i Office 14

  2. Markera kryssrutan Använd jokertecken.

    Klicka på Mera om kryssrutan Använd jokertecken inte visas.

  3. Gör något av följande:

    • Du kan välja ett jokertecken i en lista genom att klicka på Special, klicka på ett jokertecken och sedan skriva eventuell ytterligare text i rutan Sök efter. Mer information finns i tabellen Tillgängliga jokertecken.

    • Du kan skriva ett jokertecken direkt i rutan Sök efter. Mer information finns i tabellen Tillgängliga jokertecken.

  4. Om du vill ersätta elementet klickar du på fliken Ersätt och skriver sedan in det du vill använda som ersättning i rutan Ersätt med.

  5. Klicka på Sök nästa, Sök alla, Ersätt eller Ersätt alla.

    Om du vill avbryta en pågående sökning trycker du på ESC.

Tillgängliga jokertecken

Obs!: 

  • När kryssrutan Använd jokerteckenär markerad söker Word bara efter den exakta texten som du har angett. Observera att kryssrutorna Matcha gemener/VERSALERoch Matcha hela ordinte är tillgängliga (inaktiverade) för att indikera att dessa alternativ aktiveras automatiskt. Du kan inte inaktivera dessa alternativ.

  • Om du vill söka efter ett tecken som är definierat som ett jokertecken skriver du ett omvänt snedstreck (\) före tecknet. Skriv t.ex. \? om du vill söka efter ett frågetecken.

  • Du kan använder parenteser för att gruppera jokertecken och text och ange ordningen på Problemlösaren. Skriv till exempel < (pre) * (Erik) > vill söka efter "president" och "present".

  • Du kan använda jokertecknet \n om du vill söka efter ett uttryck och sedan ersätta det med det uttryck som ordnats om. Skriv t.ex. (Hasselberg) (Jonas) i rutan Sök efter och \2 \1 i rutan Ersätt med . Word söker efter Hasselberg Jonas och ersätter det med Jonas Hasselberg.

Om du vill söka efter

Typ

Exempel

Valfritt enstaka tecken

?

s?t hittar sot och söt.

En valfri teckensträng

*

s*d hittar sed och startad.

Början av ett ord

<

<(int) hittar intressant och intrikat, men inte plint.

Slutet av ett ord

>

(in)> hittar in och kanin, men inte intressant.

Ett av de angivna tecknen

[ ]

s[io]l hittar sil och sol.

Ett valfritt tecken inom detta intervall

[-]

[r-t]ätt hittar rätt och sätt. Intervallen måste anges i stigande ordning.

Ett valfritt tecken utom tecknen inom klammerparentes

[!x-z]

t[!a-m]ck hittar tock och tuck, men inte tack eller tick.

Exakt n förekomster av föregående tecken eller uttryck

{n}

fe{2}d hittar feed men inte fed.

Minst n förekomster av föregående tecken eller uttryck

{n,}

fe{1,}d hittar fed och feed.

Från n till m förekomster av föregående tecken eller uttryck

{n,m}

10{1,3} hittar 10, 100 och 1 000.

En eller fler förekomster av föregående tecken eller uttryck

@

lo@t hittar lot och loot.

Överst på sidan

Reguljära uttryck i praktiken

Nedan följer några exempel på hur du kan använda jokertecken och reguljära uttryck i Microsoft Word

Exempel 1: Transponera namn med initialer för mellannamn

Det här exemplet används en kombination av jokertecken och teckenkoder ska transponeras namn som innehåller initialer för mellannamn. Om du är bekant med teckenkoder finns i Hjälp om Word avsnittet söka efter och ersätta text och andra data i Word 2010-filer.

Tänk på följande:

  • När du använder det här uttrycket för namn som finns i en tabell måste du först konvertera tabellen till text.

  • Om tabellen innehåller mer än en kolumn kopierar du kolumnen som innehåller namnen till ett tomt dokument och konverterar den till text här.

  • När du transponera namnen konvertera texten till en tabell. Du kan sedan ta bort den ursprungliga kolumnen och ersätta det med ändrade data.

Så här förbereder du exempeldata

  1. Om du inte redan gjort det startar du Word och skapar ett nytt, tomt dokument.

  2. Infoga en tom tabell i dokumentet som är en kolumn bred och fyra rader hög.

  3. Kopiera dessa namn separat och klistra in vart och ett i en tom tabellcell:

    Joshua Quentin Barnhill
    Doris X. Hartwig
    Tamara Y. Johnston
    Daniel Shimshoni

    Tabellen bör se ut ungefär så här:

Joshua Quentin Barnhill

Doris X. Hartwig

Tamara Y. Johnston

Daniel Shimshoni

  1. Markera tabellen och klicka på Konvertera till text i gruppen Data på fliken Layout under Tabellverktyg.

  2. Välj Stycketecken som textavgränsare och klicka på OK.

Så här transponerar du namn med initialer

  1. Öppna dialogrutan Sök och ersätt genom att klicka på Ersätt i gruppen Redigering på fliken Start.

  2. Markera kryssrutan Använd jokertecken (du kan behöva klicka på Mer för att visa kryssrutan) och skriv följande uttryck i rutan Sök efter:

    (*) ([! ]@)^13

    Glöm inte att lägga till ett blanksteg mellan de två parentesuppsättningarna och efter utropstecknet. Om du inte har sett tecknet ^13 förut beskriver vi hur det fungerar i nästa avsnitt.

  3. Skriv följande uttryck i rutan Ersätt med:

    \2, \1^p

  4. Markera listan med namn och klicka på Ersätt alla. Namnen och initialerna för mellannamn eller mellannamnen transponeras i Word:

    Barnhill, Joshua Quentin
    Hartwig, Doris X.
    Johnston, Tamara Y.
    Shimshoni, Daniel

Så här konverterar du tillbaka den ändrade texten till en tabell

  1. Markera listan med transponerade namn.

  2. Klicka på Tabell i gruppen Tabeller på fliken Infoga och klicka på Konvertera text till tabell.

    Dialogrutan Konvertera text till en tabell öppnas.

  3. Klicka på Stycken under Avgränsa text med och klicka på OK.

Uttrycket del för del

Nu ska vi titta närmare på de enskilda delarna i uttrycket och se hur de fungerar. Vi börjar med uttrycket i rutan Sök efter.

Hela uttrycket söker efter två grupper av mönster: ett förnamn med en initial för mellannamn (eller ett mellannamn) och ett efternamn. (*) hittar alla förnamn. Observera blanksteget efter.

Den här delen av uttrycket matchar efternamnen:

([! ] @)^ 13

Utropstecknet utesluter alla tecken som angetts inom parentes. I det här fallet betyder [!] "hitta allt men blanksteg." Effekten är att trimma utrymme from in front of efternamnen.

Tecknet @ hittar en eller flera förekomster av föregående tecken, vilket betyder att alla är det praktiska övningar att säkerställa att alla blanksteg framför efternamnet tas bort.

Vi måste veta var efternamnet slutar. Därför använder vi tecknet ^13 för att söka efter stycketecknet i slutet av varje rad. Eftersom vi inte vill återanvända stycketecknet omger vi allt annat med parenteser.

Du kan prova det här genom att kopiera namnen i testdokumentet igen (kontrollerar du Skilj dem åt med stycketecken), och sök sedan efter med hjälp av ([!] @) ^13 i rutan Sök efter . Sök matchar varje efternamn.

Eftersom sökningen startar igen i början av nästa rad använder vi asterisken (*) för att matcha allt från den punkten till början av nästa efternamn.

Eftersom vi inte vill återanvända blanksteget framför efternamnet använder vi parenteser för att utelämna det från de två grupperna:

(*) ([! ] @)^ 13

Viktigt!: Var försiktig när du använder teckenkoden ^13. Vanligtvis kan du använda teckenkoden ^p för att söka efter stycketecken. Den koden fungerar emellertid inte i sökningar med jokertecken. I stället måste du använda koden ^13. Även om teckenkoden ^p inte fungerar i sökningar med jokertecken bör du använda den vid ersättningar med jokertecken. Varför? Till skillnad från tecknet ^13 inkluderar ^p formateringsinformation. Tecknet ^13 kan inte tilldelas någon formatinformation över huvud taget. Felaktig användning av koden ^13 i en ersättningsåtgärd kan konvertera ett dokument till en fil som du inte kan formatera.

Ersättningsuttrycket (\2 \1) utför själva transponeringen. I rutan Ersätt med beordrar tecknen \2, sökningen att skriva det andra mönstret först och att lägga till ett kommatecken efter mönstret. Tecknen \1^p anger var sökningen ska skriva det första mönstret och anger att ett stycketecken ska läggas till efter det mönstret.

Exempel 2: Transponera datum

Du kan använda de reguljära uttryck som visas här om du vill konvertera datum i europeiskt format till datum i amerikanskt format.

Så här transponerar du datum

  1. Kopiera och klistra in följande datum i dokumentet: 28th May 2003

  2. Öppna dialogrutan Sök och ersätt och skriv följande uttryck i rutan Sök efter:

    ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4})

    Glöm inte att infoga ett blanksteg mellan följande inledande och avslutande parenteser: 2}) (<[ and *>) ([0.

  3. Ange följande uttryck i rutan Ersätt med:

    \3 \1, \4

    Glöm inte att infoga ett blanksteg mellan varje uppsättning tecken.

  4. Klicka på Ersätt alla.

    Sökningen ersätter 28th May, 2003 med May 28, 2003.

Uttrycket del för del

Nu ska vi börja med uttrycket i rutan Sök efter. Uttrycket fungerar genom att bryta ned datumen i fyra mönster, som anges i olika uppsättningar med parenteser. Varje mönster innehåller de komponenter som finns i alla datum som är skrivna i det format som du använde i exemplet. Från vänster till höger:

  • Tal område [0-9] matchar ensiffriga tal i det första mönstret. Eftersom datum kan består av två tal kan vi berätta för sökningen att returnera siffra eller två siffror datum: {12}. Resultatet är det första mönstret: ([0-9] {1,2}).

    Ordningstal utgör andra mönster. Ordningstal bestå av "th," "IV," "st" och "rd," så att vi lägga till dessa bokstäver i ett område [dhnrst]. Eftersom ordningstal alltid består av två bokstäver, vi begränsa antalet brev till två: ([dhnrst] {2}).

  • Nästa kommer ett blanksteg, följt av literal och jokertecken tecken som hittar månadsnamn. Alla månadsnamn börjar med de här versaler: ADFJMNOS. Vi vet inte hur många tecken som följer varje versal så att vi följa dem med asterisk (*). Vi bara är intresserad av månadsnamnet, så vi använda större-än och mindre-än tecken att begränsa resultatet till enskilda ord. Resultatet är det fjärde mönstret: (< [ADFJMNOS] * >).

  • Slutligen kan söker vi du efter året. Vi använder området samma, men den här gången vi begränsar antalet till fyra bokstäver ([0-9] {4}).

Observera att vi bara skrev tre av de fyra mönstren i rutan Ersätt med. Vi utelämnade ordningstalet (d.v.s. "th") från datumet eftersom ordningstal inte används i datum i amerikanskt format. Om du vill lämna ordningstalet i datumet skriver du \3 \1\2, \4 i rutan Ersätt med. Om du gör det lägger du till ett blanksteg både efter nummer 3 och efter kommatecknet, men ingen annanstans.

Nu kanske du undrar hur du hanterar datum där namnet på månaden inte skrivs ut, t.ex. 28/05/03. Du använder det här uttrycket:

([0-9 ]{ 1,2}) /( [0-9]{1,2})/([0-9]{2})

Du ersätter med hjälp av det här uttrycket:

\3/\1/\2

Om datumet har formatet 28/05/2003 använder du {4} i det sista mönstret i stället för {2}.

Använda listavgränsare i reguljära uttryck

I föregående exempel används följande argument för att hitta siffra eller två siffror datum: {12}. I det här fallet avgränsar ett semikolon de två värdena. Observera att de nationella inställningarna i Windows styr listavgränsare som du använder. Om de nationella inställningarna anger användning av semikolon som listavgränsare, måste du använda dem i stället för kommatecken.

Så här kontrollerar du vilken listavgränsare som används i ditt operativsystem:

Windows 7

  1. Klicka på knappen Starta Bild av knapp och klicka sedan på Kontrollpanelen.

  2. Klicka på Klocka, språk och nationella inställningar.

  3. Klicka på Ändra datum-, tids- eller sifferformat och sedan på Ytterligare inställningar.

  4. Klicka på fliken Tal och leta upp posten Listavgränsare.

Windows Vista

  1. Klicka på knappen Starta Bild av knapp och klicka sedan på Kontrollpanelen.

  2. Klicka på Klocka, språk och nationella inställningar.

  3. Klicka på Nationella inställningar och språkinställningar.

  4. Klicka på Anpassa detta format under Aktuellt format på fliken Format.

  5. Klicka på fliken Tal och leta upp posten Listavgränsare.

Windows XP

  1. Klicka på Start-knappen i Windows och klicka sedan på Kontrollpanelen.

  2. Dubbelklicka på Nationella inställningar och språkinställningar.

  3. Klicka på Anpassa på fliken Nationella inställningar.

  4. Klicka på fliken Tal och leta upp posten Listavgränsare.

Exempel 3: Lägga till eller ta bort punkter i hälsningsfraser

I vissa länder innehåller titlar som engelskans Mr., Mrs. o.s.v. inte punkter. I det här exemplet ser du hur du lägger till eller tar bort punkter i titlar. Hädanefter förutsätter vi att du vet hur dialogrutan Sök och ersätt används.

Det här uttrycket hittar Mr, Ms, Mrs och Dr utan punkter:

<( [DM][ rs ]{1,2})( )

Observera att uttrycket använder ett andra mönster som innehåller ett blanksteg. Det blanksteget skulle normalt kommit efter titeln om det inte funnits någon punkt. Det här uttrycket lägger till punkten:

\1.\2

Om du vill göra det motsatta söker du med det här uttrycket:

<( [DM][ rs ]{1,2}).

Och ersätter med hjälp av det här uttrycket:

\1

Exempel 4: Hitta dubblettstycken eller -rader

När du använder det här uttrycket kanske du vill sortera listan först så att dubblettrader placeras bredvid varandra. Du måste också ta bort alla tomma stycketecken. Om du använder tomma stycken för att avgränsa textblock, t.ex.:

Joshua Quentin Barnhill¶

Joshua Quentin Barnhill¶

Doris X. Hartwig¶

måste du alltså ta bort dessa stycketecken:

Joshua Quentin Barnhill¶
Joshua Quentin Barnhill¶
Doris X. Hartwig¶

Du kan ta bort de tomma styckena med önskad metod, men eftersom vi pratar om reguljära uttryck ska du använda ett som hittar två efterföljande stycketecken. Sök med hjälp av det här uttrycket (@-tecknet upprepar "sök och ersätt"-åtgärden och tar bort alla upprepade tomma rader):

(^13)\1@

Du ersätter resultatet med det här uttrycket:

^ p

Nu ska vi se hur du kan ersätta text på olika sätt. Det här uttrycket hittar alla sekvenser av två efterföljande, identiska stycken:

(*^13)\1

Det här uttrycket matchar också längre upprepningar av text som avslutas med stycken. Kör exempelvis uttrycket på följande lista:

Joshua Quentin Barnhill¶
Doris X. Hartwig¶
Joshua Quentin Barnhill¶
Doris X. Hartwig¶
Tamara Y. Johnston¶

Sökningen hittar de första fyra raderna och stannar bara när hela mönstret ändras. Om du däremot kör uttrycket mot den här listan:

Joshua Quentin Barnhill¶
Joshua Quentin Barnhill
Doris X. Hartwig¶
Doris X. Hartwig¶

så hittar uttrycket bara de två första styckena.

Om du vill söka efter ett stort antal identiska poster lägger du till fler platshållare. Det här uttrycket hittar exempelvis tre efterföljande, identiska stycken:

(*^13)\1\1

Du kan också göra samma sak genom att använda hakparenteser. Följande exempel hittar två respektive tre identiska stycken:

(*^13){2 }
(*^13){3}

Du kan också söka efter antingen två eller tre identiska stycken:

(*^13){2 ,3 }

Du kan också söka efter två eller fler identiska stycken:

(*^13){2,}

Du kan ersätta något av uttrycken med följande sträng:

\1

Du kan dessutom upprepa "sök och ersätt"-åtgärden efter behov om du vill ersätta alla dubblettstycken i dokumentet, eller lägga till jokertecknet @ så att uttrycket upprepar åtgärden automatiskt:

(*^13)\1@

Du kan också använda den här metoden om du vill ersätta dubblettrader i en tabell. Det gör du genom att först ta bort eventuella sammanfogade celler och sedan sortera tabellen så att dubblettceller placeras intill varandra. Därefter konverterar du tabellen till text. (Peka på KonverteraTabell-menyn och klicka på Tabell till text. När du uppmanas att göra det väljer du tabbavgränsaren.) När du har gjort ersättningarna konverterar du tillbaka texten till en tabell.

Fler exempel

Fler exempel på hur du använder reguljära uttryck i Word finns i söka efter och ersätta tecken med hjälp av jokertecken på webbplatsen MVP vanliga frågor och svar.

Om författarna

I den här artikeln sätter samman innehåll som tidigare har skapats med hjälp av Graham borgmästare och Klaus Linke, tidigare Microsoft Word Most Valuable Professionals (MVP). Mer information om MVP och MVP-programmet finns i Microsoft MVP webbplats och MVPs.org.

Överst på sidan

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Hade du nytta av den här informationen?

Hur kan vi förbättra den?

Hur kan vi förbättra den?

För att skydda din integritet bör du inte ange någon kontaktinformation i feedbacken. Granska våra sekretesspolicy.

Tack för din feedback!