Finding and Replacing Text in File
The standard facility helps you find and replace text strings in the active editor.
In this section:
- Search in the current file
- Replace in the current file
- Working with search results
- Search and replace options
- Example. Finding and replacing a string using regular expression.
To find a text string in the current file
- On the main menu, choose , or press Ctrl+F. The search pane appears on top of the active editor.
- If necessary, specify the search options.
- In the search field, start typing the search string:
As you type, the first occurrence of the search string after the current cursor position is selected; the other occurrences are highlighted in the editor. In addition, the matching occurrences are marked in the right gutter with stripes."
- Explore search results.
To replace a text string in the current file
- On the main menu, choose , or press Ctrl+R. The search and replace pane appears on top of the active editor.
- If necessary, specify the search and replace options.
- In the search field, start typing the search string. As you type, the matching occurrences are highlighted in the editor, and a Replace pop-up dialog box opens at the first occurrence, suggesting you to replace the current occurrence, or all of them, with an empty string.
- Start typing the replacement string.
- Explore search results, and, using the buttons of the replace dialog box, replace occurrences as required. See Search and replace options below.
Working with search results
- To initiate a new search, do one of the following (depending on the current focus):
- If the editor has the focus, press Ctrl+F.
- If the search field has the focus, press Ctrl+A
In both cases, the existing search string will be selected, and you can start typing a new one.
- To jump between occurrences, do one if the following:
- Press Shift+F3 or F3.
- Use or buttons in the Search pane.
- Click the gutter stripes.
- The search pane shows the number of found occurrences. If no matches are found, the search pane is red highlighted:
- Use Code completion in Find and Replace panes. Start typing the search string, press Ctrl+Space, and select the appropriate word from the suggestion list.
- Use the recent history of searches: with the search pane already open, click to show the list of recent entries.
- With the search or replace pane already opened, use Ctrl+R or Ctrl+F to toggle between panes. So doing, the search and replace strings are preserved.
- To cancel operation and close the pane, press Escape.
- Use multiple selection. For example, if a certain string has been highlighted as a search result, it is possible to add an occurrence of this string to the multiple selection by clicking (Alt+J) , delete an occurrence from the multiple selection using (Shift+Alt+J), or add all the found occurrences to the multiple selection using (Ctrl+Shift+Alt+J).
Search and replace options
|Click this button to show the history of the recent entries.||Search, replace|
|Click this button to clear the search field.||Search, replace|
|Click these buttons to navigate through the occurrences of the search string.||Search, replace|
|Click this button to add the next found occurrence to a multiple selection.||Search|
|Click this button to remove the found occurrence from a multiple selection.||Search|
|Click this button to create a selection that contains all the found occurrences.||Search|
|Click this button to show search results in the Find tool window.||Search, replace|
|Click this button to enable entering the search string in several lines. If this button is not pressed,
you still can enter search strings that occupy several lines, but should work in the regular expression mode and use escape characters.
|Match Case||If this check box is selected, PyCharm will distinguish between upper and lowercase letters while searching.||Search, replace|
|Regex||If this check box is selected, the search string will be perceived as a regular expression, and the replacement preview is shown in a tooltip ( Refer to the section Example).||Search, replace|
|Words||if this check box is selected, PyCharm will search for whole words only,
that is, for character strings separated with spaces, tabs, punctuation, or special characters. |
This check box is disabled, if the Regular expressions check box is selected.
|Preserve Case||If this check box is selected, PyCharm retains the case of the first letter
and the case of the initial string in general. For example,
MyTest will be replaced with Yourtest if you specify yourtest as the replacement.|
This check box is disabled, if Regular expressions check box is selected.
|In Selection||If this check box is selected, search and replacement will be confined to the selected text only.||Replace|
|Replace||Click this button to replace the current occurrence and proceed to the next one.||Replace|
|Replace all||Click this button the replace all found occurrences in the current file, or in the selection.||Replace|
|Exclude/Include||Click Exclude button to skip the current occurrence and exclude it from the Replace all operation. The button for this occurrence changes to Include.||Replace|
|Click this button to reveal the list of additional options. Checking the corresponding option confines the search to the specified scope, while the other occurrences are ignored.||Search, replace|
Example. Finding and replacing a string using regular expression.
Consider the following XML code fragment:
<new product="ij" category="105" title="Multiline search and replace in the current file" /> <new product="ij" category="105" title="Improved search and replace in the current file" /> <new product="ij" category="105" title="Regexp shows replacement preview" /> ...
Suppose you want to replace an attribute within an element (
title) with an expanded
<title></title>, which contains some arbitrary string in double-quotes within.
This is how it's done.
- With the XML file in question opened in the editor, press Ctrl+R. The Replace pane appears on top of the editor.
- Since you want to replace all the
titleattributes, regardless of the actual strings contained therein, use regular expressions. Make sure that the check box Regex is selected. Thus everything you type in the Search and Replace fields will be perceived as the regular expressions.
- In the Search field, start typing regular expression that describes all
titleattributes. Note that though the regular expression
\stitle=".*?"\s*[/>]*matches contents of the
titleattribute, it is recommended to capture the groups for referencing them in the Replace field:
Note that for the regular expressions replacement preview is shown at the tooltip.
- Then, in the Replace field, type the following regular expression:
- Click Replace, or Replace All.
As you see, the second capture group (
/>) is moved ahead to close the <new> element,
while the first capture group
<, which matches any string in double quotes, is moved to