1<?xml version="1.0" encoding="UTF-8"?>
2<helpdocument version="1.0">
3
4<!--***********************************************************
5 *
6 * Licensed to the Apache Software Foundation (ASF) under one
7 * or more contributor license agreements.  See the NOTICE file
8 * distributed with this work for additional information
9 * regarding copyright ownership.  The ASF licenses this file
10 * to you under the Apache License, Version 2.0 (the
11 * "License"); you may not use this file except in compliance
12 * with the License.  You may obtain a copy of the License at
13 *
14 *   http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing,
17 * software distributed under the License is distributed on an
18 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19 * KIND, either express or implied.  See the License for the
20 * specific language governing permissions and limitations
21 * under the License.
22 *
23 ***********************************************************-->
24
25
26
27
28<meta>
29      <topic id="textshared0102100001xml" indexer="include" status="PUBLISH">
30         <title xml-lang="en-US" id="tit">List of Regular Expressions</title>
31         <filename>/text/shared/01/02100001.xhp</filename>
32      </topic>
33   </meta>
34   <body>
35<bookmark xml-lang="en-US" branch="index" id="bm_id3146765"><bookmark_value>regular expressions; list of</bookmark_value>
36      <bookmark_value>lists;regular expressions</bookmark_value>
37      <bookmark_value>replacing;tab stops (regular expressions)</bookmark_value>
38      <bookmark_value>tab stops;regular expressions</bookmark_value>
39      <bookmark_value>concatenation, see ampersand symbol</bookmark_value>
40      <bookmark_value>ampersand symbol, see also operators</bookmark_value>
41</bookmark><comment>mw added "replacing;" and "tab stops;"</comment>
42<paragraph xml-lang="en-US" id="hd_id3146765" role="heading" level="1" l10n="U"
43                 oldref="203"><variable id="02100001"><link href="text/shared/01/02100001.xhp">List of Regular Expressions</link>
44</variable></paragraph>
45      <table id="tbl_id3149517">
46         <tablerow>
47            <tablecell>
48               <paragraph xml-lang="en-US" id="par_id3149741" role="tablehead" l10n="U" oldref="17">Character</paragraph>
49            </tablecell>
50            <tablecell>
51               <paragraph xml-lang="en-US" id="par_id3155577" role="tablehead" l10n="U" oldref="18">Result/Use</paragraph>
52            </tablecell>
53         </tablerow>
54         <tablerow>
55            <tablecell>
56               <paragraph xml-lang="en-US" id="par_id6600543" role="tablecontent" l10n="NEW">Any character</paragraph>
57            </tablecell>
58            <tablecell>
59               <paragraph xml-lang="en-US" id="par_id9824518.00000001" role="tablecontent" l10n="CHG">Represents the given character unless otherwise specified.</paragraph>
60            </tablecell>
61         </tablerow>
62         <tablerow>
63            <tablecell>
64               <paragraph xml-lang="en-US" id="par_id3152427" role="tablecontent" l10n="U" oldref="19">.</paragraph>
65            </tablecell>
66            <tablecell>
67               <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>
68            </tablecell>
69         </tablerow>
70         <tablerow>
71            <tablecell>
72               <paragraph xml-lang="en-US" id="par_id3154682" role="tablecontent" l10n="CHG" oldref="21">^</paragraph>
73            </tablecell>
74            <tablecell>
75               <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>
76            </tablecell>
77         </tablerow>
78         <tablerow>
79            <tablecell>
80               <paragraph xml-lang="en-US" id="par_id3159194" role="tablecontent" l10n="CHG" oldref="23">$</paragraph>
81            </tablecell>
82            <tablecell>
83               <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>
84            </tablecell>
85         </tablerow>
86         <tablerow>
87            <tablecell>
88               <paragraph xml-lang="en-US" id="par_id3156414" role="tablecontent" l10n="U" oldref="25">*</paragraph>
89            </tablecell>
90            <tablecell>
91               <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>
92            </tablecell>
93         </tablerow>
94         <tablerow>
95            <tablecell>
96               <paragraph xml-lang="en-US" id="par_id3147399" role="tablecontent" l10n="U" oldref="27">+</paragraph>
97            </tablecell>
98            <tablecell>
99               <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>
100               <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>
101            </tablecell>
102         </tablerow>
103         <tablerow>
104            <tablecell>
105               <paragraph xml-lang="en-US" id="par_id3143267" role="tablecontent" l10n="U" oldref="199">?</paragraph>
106            </tablecell>
107            <tablecell>
108               <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>
109            </tablecell>
110         </tablerow>
111         <tablerow>
112            <tablecell>
113               <paragraph xml-lang="en-US" id="par_id3166410" role="tablecontent" l10n="U" oldref="158">\</paragraph>
114            </tablecell>
115            <tablecell>
116               <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>
117            </tablecell>
118         </tablerow>
119         <tablerow>
120            <tablecell>
121               <paragraph xml-lang="en-US" id="par_id3152945" role="tablecontent" l10n="U" oldref="166">\n</paragraph>
122            </tablecell>
123            <tablecell>
124               <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>
125               <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>
126               <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>
127            </tablecell>
128         </tablerow>
129         <tablerow>
130            <tablecell>
131               <paragraph xml-lang="en-US" id="par_id3153258" role="tablecontent" l10n="U" oldref="29">\t</paragraph>
132            </tablecell>
133            <tablecell>
134               <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>
135            </tablecell>
136         </tablerow>
137         <tablerow>
138            <tablecell>
139               <paragraph xml-lang="en-US" id="par_id3150670" role="tablecontent" l10n="U" oldref="35">\b</paragraph>
140            </tablecell>
141            <tablecell>
142               <paragraph xml-lang="en-US" id="par_id3153666" role="tablecontent" l10n="CHG" oldref="36">Match a word boundary. For example, "\bbook" finds "bookmark" but not "checkbook" whereas "book\b" finds "checkbook" but not "bookmark". The discrete word "book" is found by both search terms.</paragraph>
143            </tablecell>
144         </tablerow>
145         <tablerow>
146            <tablecell>
147               <paragraph xml-lang="en-US" id="par_id3149576" role="tablecontent" l10n="U" oldref="37">^$</paragraph>
148            </tablecell>
149            <tablecell>
150               <paragraph xml-lang="en-US" id="par_id3151245" role="tablecontent" l10n="CHG" oldref="38">Finds an empty paragraph.</paragraph>
151            </tablecell>
152         </tablerow>
153         <tablerow>
154            <tablecell>
155               <paragraph xml-lang="en-US" id="par_id3148550" role="tablecontent" l10n="U" oldref="41">^.</paragraph>
156            </tablecell>
157            <tablecell>
158               <paragraph xml-lang="en-US" id="par_id3159413" role="tablecontent" l10n="CHG" oldref="42">Finds the first character of a paragraph.</paragraph>
159            </tablecell>
160         </tablerow>
161         <tablerow>
162            <tablecell>
163               <paragraph xml-lang="en-US" id="par_id3147282" role="tablecontent" l10n="CHG" oldref="43">&amp; or $0</paragraph>
164            </tablecell>
165            <tablecell>
166               <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>
167               <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>
168               <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>
169            </tablecell>
170         </tablerow>
171         <tablerow>
172            <tablecell>
173               <paragraph xml-lang="en-US" id="par_id3145419" role="tablecontent" l10n="U" oldref="172">[abc123]</paragraph>
174            </tablecell>
175            <tablecell>
176               <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>
177            </tablecell>
178         </tablerow>
179         <tablerow>
180            <tablecell>
181               <paragraph xml-lang="en-US" id="par_id3156293" role="tablecontent" l10n="U" oldref="174">[a-e]</paragraph>
182            </tablecell>
183            <tablecell>
184               <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>
185               <paragraph xml-lang="en-US" id="par_id100520090232005" role="tablecontent" l10n="NEW">The characters are ordered by their code numbers.</paragraph>
186            </tablecell>
187         </tablerow>
188         <tablerow>
189            <tablecell>
190               <paragraph xml-lang="en-US" id="par_id3155994" role="tablecontent" l10n="U" oldref="176">[a-eh-x]</paragraph>
191            </tablecell>
192            <tablecell>
193               <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>
194            </tablecell>
195         </tablerow>
196         <tablerow>
197            <tablecell>
198               <paragraph xml-lang="en-US" id="par_id3145318" role="tablecontent" l10n="U" oldref="178">[^a-s]</paragraph>
199            </tablecell>
200            <tablecell>
201               <paragraph xml-lang="en-US" id="par_id3153351" role="tablecontent" l10n="CHG" oldref="179">Represents everything that is not between a and s.</paragraph>
202            </tablecell>
203         </tablerow>
204         <tablerow>
205            <tablecell>
206               <paragraph xml-lang="en-US" id="par_id3156543" role="tablecontent" l10n="U" oldref="180">\xXXXX</paragraph>
207            </tablecell>
208            <tablecell>
209               <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>
210               <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>
211            </tablecell>
212         </tablerow>
213         <tablerow>
214            <tablecell>
215               <paragraph xml-lang="en-US" id="par_id3153951" role="tablecontent" l10n="U" oldref="186">|</paragraph>
216            </tablecell>
217            <tablecell>
218               <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>
219            </tablecell>
220         </tablerow>
221         <tablerow>
222            <tablecell>
223               <paragraph xml-lang="en-US" id="par_id3147376" role="tablecontent" l10n="U" oldref="209">{2}</paragraph>
224            </tablecell>
225            <tablecell>
226               <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>
227            </tablecell>
228         </tablerow>
229         <tablerow>
230            <tablecell>
231               <paragraph xml-lang="en-US" id="par_id3151289" role="tablecontent" l10n="U" oldref="211">{1,2}</paragraph>
232            </tablecell>
233            <tablecell>
234               <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>
235            </tablecell>
236         </tablerow>
237         <tablerow>
238            <tablecell>
239               <paragraph xml-lang="en-US" id="par_id4870754" role="tablecontent" l10n="NEW">{1,}</paragraph>
240            </tablecell>
241            <tablecell>
242               <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>
243            </tablecell>
244         </tablerow>
245         <tablerow>
246            <tablecell>
247               <paragraph xml-lang="en-US" id="par_id3148616" role="tablecontent" l10n="U" oldref="213">( )</paragraph>
248            </tablecell>
249            <tablecell>
250               <paragraph xml-lang="en-US" id="par_id2701803" role="tablecontent" l10n="NEW">In the <emph>Search for</emph> box:</paragraph>
251               <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>
252               <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>
253               <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>
254               <paragraph xml-lang="en-US" id="par_id9200109" role="tablecontent" l10n="NEW">In the <emph>Replace with</emph> box:<comment>i83322</comment></paragraph>
255               <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>
256            </tablecell>
257         </tablerow>
258         <tablerow>
259            <tablecell>
260               <paragraph xml-lang="en-US" id="par_id3154790" role="tablecontent" l10n="U" oldref="226">[:alpha:]</paragraph>
261            </tablecell>
262            <tablecell>
263               <paragraph xml-lang="en-US" id="par_id3147397" role="tablecontent" l10n="CHG" oldref="227">Represents an alphabetic character. Use [:alpha:]+ to find one or more of them.</paragraph>
264            </tablecell>
265         </tablerow>
266         <tablerow>
267            <tablecell>
268               <paragraph xml-lang="en-US" id="par_id3152885" role="tablecontent" l10n="U" oldref="216">[:digit:]</paragraph>
269            </tablecell>
270            <tablecell>
271               <paragraph xml-lang="en-US" id="par_id3150010" role="tablecontent" l10n="CHG" oldref="217">Represents a decimal digit. Use [:digit:]+ to find one or more of them.</paragraph>
272            </tablecell>
273         </tablerow>
274         <tablerow>
275            <tablecell>
276               <paragraph xml-lang="en-US" id="par_id3153743" role="tablecontent" l10n="U" oldref="224">[:alnum:]</paragraph>
277            </tablecell>
278            <tablecell>
279               <paragraph xml-lang="en-US" id="par_id3153281" role="tablecontent" l10n="CHG" oldref="225">Represents an alphanumeric character ([:alpha:] and [:digit:]).</paragraph>
280            </tablecell>
281         </tablerow>
282         <tablerow>
283            <tablecell>
284               <paragraph xml-lang="en-US" id="par_id3153726" role="tablecontent" l10n="U" oldref="218">[:space:]</paragraph>
285            </tablecell>
286            <tablecell>
287               <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>
288            </tablecell>
289         </tablerow>
290         <tablerow>
291            <tablecell>
292               <paragraph xml-lang="en-US" id="par_id3150486" role="tablecontent" l10n="U" oldref="220">[:print:]</paragraph>
293            </tablecell>
294            <tablecell>
295               <paragraph xml-lang="en-US" id="par_id3150872" role="tablecontent" l10n="CHG" oldref="221">Represents a printable character.</paragraph>
296            </tablecell>
297         </tablerow>
298         <tablerow>
299            <tablecell>
300               <paragraph xml-lang="en-US" id="par_id3155854" role="tablecontent" l10n="U" oldref="222">[:cntrl:]</paragraph>
301            </tablecell>
302            <tablecell>
303               <paragraph xml-lang="en-US" id="par_id3152576" role="tablecontent" l10n="CHG" oldref="223">Represents a nonprinting character.</paragraph>
304            </tablecell>
305         </tablerow>
306         <tablerow>
307            <tablecell>
308               <paragraph xml-lang="en-US" id="par_id3149958" role="tablecontent" l10n="U" oldref="228">[:lower:]</paragraph>
309            </tablecell>
310            <tablecell>
311               <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>
312            </tablecell>
313         </tablerow>
314         <tablerow>
315            <tablecell>
316               <paragraph xml-lang="en-US" id="par_id3148455" role="tablecontent" l10n="U" oldref="230">[:upper:]</paragraph>
317            </tablecell>
318            <tablecell>
319               <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>
320               </paragraph>
321            </tablecell>
322         </tablerow>
323      </table>
324
325      <paragraph xml-lang="en-US" id="hd_id5311441" role="heading" level="2" l10n="NEW">Examples</paragraph>
326
327<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>
328<paragraph xml-lang="en-US" id="par_id952368773" role="paragraph" l10n="NEW">^([:digit:])$    -- finds lines or cells with exactly one digit.</paragraph>
329
330
331      <paragraph xml-lang="en-US" id="par_id9568773" role="paragraph" l10n="NEW">You can combine the search terms to form complex searches.</paragraph>
332      <paragraph xml-lang="en-US" id="hd_id71413" role="heading" level="3" l10n="NEW">To find three-digit numbers alone in a paragraph</paragraph>
333      <paragraph xml-lang="en-US" id="par_id2924283" role="code" l10n="NEW">^[:digit:]{3}$</paragraph>
334      <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>
335      <paragraph xml-lang="en-US" id="par_id6942045" role="paragraph" l10n="NEW">[:digit:] matches any decimal digit, </paragraph>
336      <paragraph xml-lang="en-US" id="par_id4721823" role="paragraph" l10n="NEW">{3} means there must be exactly 3 copies of "digit", </paragraph>
337      <paragraph xml-lang="en-US" id="par_id5806756" role="paragraph" l10n="NEW">$ means the match must end a paragraph. </paragraph>
338      <section id="relatedtopics">
339         <embed href="text/shared/01/02100000.xhp#02100000"/>
340<switch select="appl">
341<case select="WRITER"><embed href="text/swriter/guide/search_regexp.xhp#search_regexp"/>
342         <embed href="text/swriter/guide/finding.xhp#finding"/>
343</case>
344</switch>
345<paragraph xml-lang="en-US" id="par_id1751457" role="paragraph" l10n="NEW"><link href="https://wiki.openoffice.org/wiki/Documentation/How_Tos/Regular_Expressions_in_Writer">Wiki page about regular expressions in Writer</link></paragraph>
346         <paragraph xml-lang="en-US" id="par_id5483870" role="paragraph" l10n="NEW"><link href="https://wiki.openoffice.org/wiki/Documentation/How_Tos/Regular_Expressions_in_Calc">Wiki page about regular expressions in Calc</link></paragraph>
347      </section>
348   </body>
349</helpdocument>
350