1<?xml version="1.0" encoding="UTF-8"?>
2<helpdocument version="1.0">
3
4<!--
5***********************************************************************
6 *
7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8 *
9 * Copyright 2000, 2010 Oracle and/or its affiliates.
10 *
11 * OpenOffice.org - a multi-platform office productivity suite
12 *
13 * This file is part of OpenOffice.org.
14 *
15 * OpenOffice.org is free software: you can redistribute it and/or modify
16 * it under the terms of the GNU Lesser General Public License version 3
17 * only, as published by the Free Software Foundation.
18 *
19 * OpenOffice.org is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 * GNU Lesser General Public License version 3 for more details
23 * (a copy is included in the LICENSE file that accompanied this code).
24 *
25 * You should have received a copy of the GNU Lesser General Public License
26 * version 3 along with OpenOffice.org.  If not, see
27 * <http://www.openoffice.org/license.html>
28 * for a copy of the LGPLv3 License.
29 *
30 ************************************************************************
31 -->
32
33
34<meta>
35      <topic id="textshared0102100001xml" indexer="include" status="PUBLISH">
36         <title xml-lang="en-US" id="tit">List of Regular Expressions</title>
37         <filename>/text/shared/01/02100001.xhp</filename>
38      </topic>
39   </meta>
40   <body>
41<bookmark xml-lang="en-US" branch="index" id="bm_id3146765"><bookmark_value>regular expressions; list of</bookmark_value>
42      <bookmark_value>lists;regular expressions</bookmark_value>
43      <bookmark_value>replacing;tab stops (regular expressions)</bookmark_value>
44      <bookmark_value>tab stops;regular expressions</bookmark_value>
45      <bookmark_value>concatenation, see ampersand symbol</bookmark_value>
46      <bookmark_value>ampersand symbol, see also operators</bookmark_value>
47</bookmark><comment>mw added "replacing;" and "tab stops;"</comment>
48<paragraph xml-lang="en-US" id="hd_id3146765" role="heading" level="1" l10n="U"
49                 oldref="203"><variable id="02100001"><link href="text/shared/01/02100001.xhp">List of Regular Expressions</link>
50</variable></paragraph>
51      <table id="tbl_id3149517">
52         <tablerow>
53            <tablecell>
54               <paragraph xml-lang="en-US" id="par_id3149741" role="tablehead" l10n="U" oldref="17">Character</paragraph>
55            </tablecell>
56            <tablecell>
57               <paragraph xml-lang="en-US" id="par_id3155577" role="tablehead" l10n="U" oldref="18">Result/Use</paragraph>
58            </tablecell>
59         </tablerow>
60         <tablerow>
61            <tablecell>
62               <paragraph xml-lang="en-US" id="par_id6600543" role="tablecontent" l10n="NEW">Any character</paragraph>
63            </tablecell>
64            <tablecell>
65               <paragraph xml-lang="en-US" id="par_id9824518.00000001" role="tablecontent" l10n="CHG">Represents the given character unless otherwise specified.</paragraph>
66            </tablecell>
67         </tablerow>
68         <tablerow>
69            <tablecell>
70               <paragraph xml-lang="en-US" id="par_id3152427" role="tablecontent" l10n="U" oldref="19">.</paragraph>
71            </tablecell>
72            <tablecell>
73               <paragraph xml-lang="en-US" id="par_id3149031" role="tablecontent" l10n="CHG" oldref="20">Represents any single character except for a line break or paragraph break. For example, the search term "sh.rt" returns both "shirt" and "short".</paragraph>
74            </tablecell>
75         </tablerow>
76         <tablerow>
77            <tablecell>
78               <paragraph xml-lang="en-US" id="par_id3154682" role="tablecontent" l10n="CHG" oldref="21">^</paragraph>
79            </tablecell>
80            <tablecell>
81               <paragraph xml-lang="en-US" id="par_id3155351" role="tablecontent" l10n="CHG" oldref="22">Only finds the search term if the term is at the beginning of a paragraph. Special objects such as empty fields or character-anchored frames, at the beginning of a paragraph are ignored. Example: "^Peter".</paragraph>
82            </tablecell>
83         </tablerow>
84         <tablerow>
85            <tablecell>
86               <paragraph xml-lang="en-US" id="par_id3159194" role="tablecontent" l10n="CHG" oldref="23">$</paragraph>
87            </tablecell>
88            <tablecell>
89               <paragraph xml-lang="en-US" id="par_id3152542" role="tablecontent" l10n="CHG" oldref="24">Only finds the search term if the term appears at the end of a paragraph. Special objects such as empty fields or character-anchored frames at the end of a paragraph are ignored. Example: "Peter$".</paragraph>
90            </tablecell>
91         </tablerow>
92         <tablerow>
93            <tablecell>
94               <paragraph xml-lang="en-US" id="par_id3156414" role="tablecontent" l10n="U" oldref="25">*</paragraph>
95            </tablecell>
96            <tablecell>
97               <paragraph xml-lang="en-US" id="par_id3155555" role="tablecontent" l10n="CHG" oldref="26">Finds zero or more of the characters in front of the "*". For example, "Ab*c" finds "Ac", "Abc", "Abbc", "Abbbc", and so on.</paragraph>
98            </tablecell>
99         </tablerow>
100         <tablerow>
101            <tablecell>
102               <paragraph xml-lang="en-US" id="par_id3147399" role="tablecontent" l10n="U" oldref="27">+</paragraph>
103            </tablecell>
104            <tablecell>
105               <paragraph xml-lang="en-US" id="par_id3157958" role="tablecontent" l10n="CHG" oldref="28">Finds one or more of the characters in front of the "+". For example, "AX.+4" finds "AXx4", but not "AX4".</paragraph>
106               <paragraph xml-lang="en-US" id="par_id3145313" role="tablecontent" l10n="U" oldref="207">The longest possible string that matches this search pattern in a paragraph is always found. If the paragraph contains the string "AX 4 AX4", the entire passage is highlighted.</paragraph>
107            </tablecell>
108         </tablerow>
109         <tablerow>
110            <tablecell>
111               <paragraph xml-lang="en-US" id="par_id3143267" role="tablecontent" l10n="U" oldref="199">?</paragraph>
112            </tablecell>
113            <tablecell>
114               <paragraph xml-lang="en-US" id="par_id3153684" role="tablecontent" l10n="CHG" oldref="200">Finds zero or one of the characters in front of the "?". For example, "Texts?" finds "Text" and "Texts" and "x(ab|c)?y" finds "xy", "xaby", or "xcy".</paragraph>
115            </tablecell>
116         </tablerow>
117         <tablerow>
118            <tablecell>
119               <paragraph xml-lang="en-US" id="par_id3166410" role="tablecontent" l10n="U" oldref="158">\</paragraph>
120            </tablecell>
121            <tablecell>
122               <paragraph xml-lang="en-US" id="par_id3147209" role="tablecontent" l10n="CHG" oldref="159">Search interprets the special character that follows the "\" as a normal character and not as a regular expression (except for the combinations \n, \t, \&gt;, and \&lt;). For example, "tree\." finds "tree.", not "treed" or "trees".</paragraph>
123            </tablecell>
124         </tablerow>
125         <tablerow>
126            <tablecell>
127               <paragraph xml-lang="en-US" id="par_id3152945" role="tablecontent" l10n="U" oldref="166">\n</paragraph>
128            </tablecell>
129            <tablecell>
130               <paragraph xml-lang="en-US" id="par_id3153700" role="tablecontent" l10n="CHG" oldref="167">Represents a line break that was inserted with the Shift+Enter key combination. To change a line break into a paragraph break, enter <emph>\n</emph> in the <emph>Search for</emph> and <emph>Replace with</emph> boxes, and then perform a search and replace.</paragraph>
131               <paragraph xml-lang="en-US" id="par_id9262672" role="tablecontent" l10n="NEW">\n in the <emph>Search for</emph> text box stands for a line break that was inserted with the Shift+Enter key combination.</paragraph>
132               <paragraph xml-lang="en-US" id="par_id2366100" role="tablecontent" l10n="NEW">\n in the <emph>Replace with</emph> text box stands for a paragraph break that can be entered with the Enter or Return key.</paragraph>
133            </tablecell>
134         </tablerow>
135         <tablerow>
136            <tablecell>
137               <paragraph xml-lang="en-US" id="par_id3153258" role="tablecontent" l10n="U" oldref="29">\t</paragraph>
138            </tablecell>
139            <tablecell>
140               <paragraph xml-lang="en-US" id="par_id3157809" role="tablecontent" l10n="CHG" oldref="30">Represents a tab. You can also use this expression in the <emph>Replace with</emph> box.</paragraph>
141            </tablecell>
142         </tablerow>
143         <tablerow>
144            <tablecell>
145               <paragraph xml-lang="en-US" id="par_id3146775" role="tablecontent" l10n="U" oldref="33">\W</paragraph>
146            </tablecell>
147            <tablecell>
148               <paragraph xml-lang="en-US" id="par_id3148644" role="tablecontent" l10n="U" oldref="34">Match a non-word character. For example, "book\W" finds "checkbook", but not "bookmark".</paragraph>
149            </tablecell>
150         </tablerow>
151         <tablerow>
152            <tablecell>
153               <paragraph xml-lang="en-US" id="par_id3150670" role="tablecontent" l10n="U" oldref="35">\b</paragraph>
154            </tablecell>
155            <tablecell>
156               <paragraph xml-lang="en-US" id="par_id3153666" role="tablecontent" l10n="CHG" oldref="36">Only finds the search term if it appears at the beginning of a word. For example, "\bbook" finds "bookmark", but not "checkbook".</paragraph>
157            </tablecell>
158         </tablerow>
159         <tablerow>
160            <tablecell>
161               <paragraph xml-lang="en-US" id="par_id3149576" role="tablecontent" l10n="U" oldref="37">^$</paragraph>
162            </tablecell>
163            <tablecell>
164               <paragraph xml-lang="en-US" id="par_id3151245" role="tablecontent" l10n="CHG" oldref="38">Finds an empty paragraph.</paragraph>
165            </tablecell>
166         </tablerow>
167         <tablerow>
168            <tablecell>
169               <paragraph xml-lang="en-US" id="par_id3148550" role="tablecontent" l10n="U" oldref="41">^.</paragraph>
170            </tablecell>
171            <tablecell>
172               <paragraph xml-lang="en-US" id="par_id3159413" role="tablecontent" l10n="CHG" oldref="42">Finds the first character of a paragraph.</paragraph>
173            </tablecell>
174         </tablerow>
175         <tablerow>
176            <tablecell>
177               <paragraph xml-lang="en-US" id="par_id3147282" role="tablecontent" l10n="CHG" oldref="43">&amp; or $0</paragraph>
178            </tablecell>
179            <tablecell>
180               <paragraph xml-lang="en-US" id="par_id3153961" role="tablecontent" l10n="CHG" oldref="44">Adds the string that was found by the search criteria in the <emph>Search for</emph> box to the term in the <emph>Replace with</emph> box when you make a replacement.</paragraph>
181               <paragraph xml-lang="en-US" id="par_id3149650" role="tablecontent" l10n="CHG" oldref="201">For example, if you enter "window" in the <emph>Search for</emph> box and "&amp;frame" in the <emph>Replace with</emph> box, the word "window" is replaced with "windowframe".</paragraph>
182               <paragraph xml-lang="en-US" id="par_id3150543" role="tablecontent" l10n="CHG" oldref="206">You can also enter an "&amp;" in the <emph>Replace with</emph> box to modify the <emph>Attributes</emph> or the <emph>Format</emph> of the string found by the search criteria.</paragraph>
183            </tablecell>
184         </tablerow>
185         <tablerow>
186            <tablecell>
187               <paragraph xml-lang="en-US" id="par_id3145419" role="tablecontent" l10n="U" oldref="172">[abc123]</paragraph>
188            </tablecell>
189            <tablecell>
190               <paragraph xml-lang="en-US" id="par_id3154630" role="tablecontent" l10n="CHG" oldref="173">Represents one of the characters that are between the brackets.</paragraph>
191            </tablecell>
192         </tablerow>
193         <tablerow>
194            <tablecell>
195               <paragraph xml-lang="en-US" id="par_id3156293" role="tablecontent" l10n="U" oldref="174">[a-e]</paragraph>
196            </tablecell>
197            <tablecell>
198               <paragraph xml-lang="en-US" id="par_id3149167" role="tablecontent" l10n="CHG" oldref="175">Represents any of the characters that are between a and e, including both start and end characters</paragraph>
199               <paragraph xml-lang="en-US" id="par_id100520090232005" role="tablecontent" l10n="NEW">The characters are ordered by their code numbers.</paragraph>
200            </tablecell>
201         </tablerow>
202         <tablerow>
203            <tablecell>
204               <paragraph xml-lang="en-US" id="par_id3155994" role="tablecontent" l10n="U" oldref="176">[a-eh-x]</paragraph>
205            </tablecell>
206            <tablecell>
207               <paragraph xml-lang="en-US" id="par_id3148676" role="tablecontent" l10n="CHG" oldref="177">Represents any of the characters that are between a-e and h-x.</paragraph>
208            </tablecell>
209         </tablerow>
210         <tablerow>
211            <tablecell>
212               <paragraph xml-lang="en-US" id="par_id3145318" role="tablecontent" l10n="U" oldref="178">[^a-s]</paragraph>
213            </tablecell>
214            <tablecell>
215               <paragraph xml-lang="en-US" id="par_id3153351" role="tablecontent" l10n="CHG" oldref="179">Represents everything that is not between a and s.</paragraph>
216            </tablecell>
217         </tablerow>
218         <tablerow>
219            <tablecell>
220               <paragraph xml-lang="en-US" id="par_id3156543" role="tablecontent" l10n="U" oldref="180">\xXXXX</paragraph>
221            </tablecell>
222            <tablecell>
223               <paragraph xml-lang="en-US" id="par_id3153768" role="tablecontent" l10n="U" oldref="181">Represents a special character based on its four-digit hexadecimal code (XXXX).</paragraph>
224               <paragraph xml-lang="en-US" id="par_id3159252" role="tablecontent" l10n="U" oldref="208">The code for the special character depends on the font used. You can view the codes by choosing <emph>Insert - Special Character</emph>.</paragraph>
225            </tablecell>
226         </tablerow>
227         <tablerow>
228            <tablecell>
229               <paragraph xml-lang="en-US" id="par_id3153951" role="tablecontent" l10n="U" oldref="186">|</paragraph>
230            </tablecell>
231            <tablecell>
232               <paragraph xml-lang="en-US" id="par_id3154985" role="tablecontent" l10n="CHG" oldref="187">Finds the terms that occur before the "|" and also finds the terms that occur after the "|". For example, "this|that" finds "this" and "that".</paragraph>
233            </tablecell>
234         </tablerow>
235         <tablerow>
236            <tablecell>
237               <paragraph xml-lang="en-US" id="par_id3147376" role="tablecontent" l10n="U" oldref="209">{2}</paragraph>
238            </tablecell>
239            <tablecell>
240               <paragraph xml-lang="en-US" id="par_id3150103" role="tablecontent" l10n="U" oldref="210">Defines the number of times that the character in front of the opening bracket occurs. For example, "tre{2}" finds and selects "tree".</paragraph>
241            </tablecell>
242         </tablerow>
243         <tablerow>
244            <tablecell>
245               <paragraph xml-lang="en-US" id="par_id3151289" role="tablecontent" l10n="U" oldref="211">{1,2}</paragraph>
246            </tablecell>
247            <tablecell>
248               <paragraph xml-lang="en-US" id="par_id3147317" role="tablecontent" l10n="CHG" oldref="212">Defines the minimum and maximum number of times that the character in front of the opening bracket can occur. For example, "tre{1,2}" finds and selects "tre" and "tree".</paragraph>
249            </tablecell>
250         </tablerow>
251         <tablerow>
252            <tablecell>
253               <paragraph xml-lang="en-US" id="par_id4870754" role="tablecontent" l10n="NEW">{1,}</paragraph>
254            </tablecell>
255            <tablecell>
256               <paragraph xml-lang="en-US" id="par_id843836" role="tablecontent" l10n="NEW">Defines the minimum number of times that the character in front of the opening bracket can occur. For example, "tre{2,}" finds "tree", "treee", and "treeeee".</paragraph>
257            </tablecell>
258         </tablerow>
259         <tablerow>
260            <tablecell>
261               <paragraph xml-lang="en-US" id="par_id3148616" role="tablecontent" l10n="U" oldref="213">( )</paragraph>
262            </tablecell>
263            <tablecell>
264               <paragraph xml-lang="en-US" id="par_id2701803" role="tablecontent" l10n="NEW">In the <emph>Search for</emph> box:</paragraph>
265               <paragraph xml-lang="en-US" id="par_id3153573" role="tablecontent" l10n="CHG" oldref="214">Defines the characters inside the parentheses as a reference. You can then refer to the first reference in the current expression with "\1", to the second reference with "\2", and so on.</paragraph>
266               <paragraph xml-lang="en-US" id="par_id3156061" role="tablecontent" l10n="U" oldref="215">For example, if your text contains the number 13487889 and you search using the regular expression (8)7\1\1, "8788" is found.</paragraph>
267               <paragraph xml-lang="en-US" id="par_id2367931" role="tablecontent" l10n="NEW">You can also use () to group terms, for example, "a(bc)?d" finds "ad" or "abcd".</paragraph>
268               <paragraph xml-lang="en-US" id="par_id9200109" role="tablecontent" l10n="NEW">In the <emph>Replace with</emph> box:<comment>i83322</comment></paragraph>
269               <paragraph xml-lang="en-US" id="par_id5766472" role="tablecontent" l10n="NEW">Use $ (dollar) instead of \ (backslash) to replace references. Use $0 to replace the whole found string.</paragraph>
270            </tablecell>
271         </tablerow>
272         <tablerow>
273            <tablecell>
274               <paragraph xml-lang="en-US" id="par_id3154790" role="tablecontent" l10n="U" oldref="226">[:alpha:]</paragraph>
275            </tablecell>
276            <tablecell>
277               <paragraph xml-lang="en-US" id="par_id3147397" role="tablecontent" l10n="CHG" oldref="227">Represents an alphabetic character. Use [:alpha:]+ to find one of them.</paragraph>
278            </tablecell>
279         </tablerow>
280         <tablerow>
281            <tablecell>
282               <paragraph xml-lang="en-US" id="par_id3152885" role="tablecontent" l10n="U" oldref="216">[:digit:]</paragraph>
283            </tablecell>
284            <tablecell>
285               <paragraph xml-lang="en-US" id="par_id3150010" role="tablecontent" l10n="CHG" oldref="217">Represents a decimal digit. Use [:digit:]+ to find one of them.</paragraph>
286            </tablecell>
287         </tablerow>
288         <tablerow>
289            <tablecell>
290               <paragraph xml-lang="en-US" id="par_id3153743" role="tablecontent" l10n="U" oldref="224">[:alnum:]</paragraph>
291            </tablecell>
292            <tablecell>
293               <paragraph xml-lang="en-US" id="par_id3153281" role="tablecontent" l10n="CHG" oldref="225">Represents an alphanumeric character ([:alpha:] and [:digit:]).</paragraph>
294            </tablecell>
295         </tablerow>
296         <tablerow>
297            <tablecell>
298               <paragraph xml-lang="en-US" id="par_id3153726" role="tablecontent" l10n="U" oldref="218">[:space:]</paragraph>
299            </tablecell>
300            <tablecell>
301               <paragraph xml-lang="en-US" id="par_id3150961" role="tablecontent" l10n="CHG" oldref="219">Represents a space character (but not other whitespace characters).<comment>UFI: see #i41706#</comment></paragraph>
302            </tablecell>
303         </tablerow>
304         <tablerow>
305            <tablecell>
306               <paragraph xml-lang="en-US" id="par_id3150486" role="tablecontent" l10n="U" oldref="220">[:print:]</paragraph>
307            </tablecell>
308            <tablecell>
309               <paragraph xml-lang="en-US" id="par_id3150872" role="tablecontent" l10n="CHG" oldref="221">Represents a printable character.</paragraph>
310            </tablecell>
311         </tablerow>
312         <tablerow>
313            <tablecell>
314               <paragraph xml-lang="en-US" id="par_id3155854" role="tablecontent" l10n="U" oldref="222">[:cntrl:]</paragraph>
315            </tablecell>
316            <tablecell>
317               <paragraph xml-lang="en-US" id="par_id3152576" role="tablecontent" l10n="CHG" oldref="223">Represents a nonprinting character.</paragraph>
318            </tablecell>
319         </tablerow>
320         <tablerow>
321            <tablecell>
322               <paragraph xml-lang="en-US" id="par_id3149958" role="tablecontent" l10n="U" oldref="228">[:lower:]</paragraph>
323            </tablecell>
324            <tablecell>
325               <paragraph xml-lang="en-US" id="par_id3145730" role="tablecontent" l10n="CHG" oldref="229">Represents a lowercase character if <emph>Match case</emph> is selected in <emph>Options</emph>.</paragraph>
326            </tablecell>
327         </tablerow>
328         <tablerow>
329            <tablecell>
330               <paragraph xml-lang="en-US" id="par_id3148455" role="tablecontent" l10n="U" oldref="230">[:upper:]</paragraph>
331            </tablecell>
332            <tablecell>
333               <paragraph xml-lang="en-US" id="par_id3150092" role="tablecontent" l10n="CHG" oldref="231">Represents an uppercase character if <emph>Match case</emph> is selected in <emph>Options.</emph>
334               </paragraph>
335            </tablecell>
336         </tablerow>
337      </table>
338
339      <paragraph xml-lang="en-US" id="hd_id5311441" role="heading" level="2" l10n="NEW">Examples</paragraph>
340
341<paragraph xml-lang="en-US" id="par_id956834773" role="paragraph" l10n="NEW">e([:digit:])?    -- finds 'e' followed by zero or one digit. Note that currently all named character classes like [:digit:] must be enclosed in parentheses.<comment>issue 64368 and 113035</comment></paragraph>
342<paragraph xml-lang="en-US" id="par_id952368773" role="paragraph" l10n="NEW">^([:digit:])$    -- finds lines or cells with exactly one digit.</paragraph>
343
344
345      <paragraph xml-lang="en-US" id="par_id9568773" role="paragraph" l10n="NEW">You can combine the search terms to form complex searches.</paragraph>
346      <paragraph xml-lang="en-US" id="hd_id71413" role="heading" level="3" l10n="NEW">To find three-digit numbers alone in a paragraph</paragraph>
347      <paragraph xml-lang="en-US" id="par_id2924283" role="code" l10n="NEW">^[:digit:]{3}$</paragraph>
348      <paragraph xml-lang="en-US" id="par_id5781731" role="paragraph" l10n="NEW">^ means the match has to be at the start of a paragraph, </paragraph>
349      <paragraph xml-lang="en-US" id="par_id6942045" role="paragraph" l10n="NEW">[:digit:] matches any decimal digit, </paragraph>
350      <paragraph xml-lang="en-US" id="par_id4721823" role="paragraph" l10n="NEW">{3} means there must be exactly 3 copies of "digit", </paragraph>
351      <paragraph xml-lang="en-US" id="par_id5806756" role="paragraph" l10n="NEW">$ means the match must end a paragraph. </paragraph>
352      <section id="relatedtopics">
353         <embed href="text/shared/01/02100000.xhp#02100000"/>
354<switch select="appl">
355<case select="WRITER"><embed href="text/swriter/guide/search_regexp.xhp#search_regexp"/>
356         <embed href="text/swriter/guide/finding.xhp#finding"/>
357</case>
358</switch>
359<paragraph xml-lang="en-US" id="par_id1751457" role="paragraph" l10n="NEW"><link href="http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Regular_Expressions_in_Writer">Wiki page about regular expressions in Writer</link></paragraph>
360         <paragraph xml-lang="en-US" id="par_id5483870" role="paragraph" l10n="NEW"><link href="http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Regular_Expressions_in_Calc">Wiki page about regular expressions in Calc</link></paragraph>
361      </section>
362   </body>
363</helpdocument>
364