<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.den4b.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Den4b</id>
	<title>den4b Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.den4b.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Den4b"/>
	<link rel="alternate" type="text/html" href="https://www.den4b.com/wiki/Special:Contributions/Den4b"/>
	<updated>2026-05-07T10:00:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=MediaWiki:Sidebar&amp;diff=3869</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=MediaWiki:Sidebar&amp;diff=3869"/>
		<updated>2026-03-24T23:59:06Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Remove link to the forum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** //www.den4b.com/|Home&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=MediaWiki:Sitenotice&amp;diff=3868</id>
		<title>MediaWiki:Sitenotice</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=MediaWiki:Sitenotice&amp;diff=3868"/>
		<updated>2026-03-24T23:49:54Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Deprecation notice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#fff3cd; border:1px solid #ffc107; padding:10px; text-align:center; font-size:1.2em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;⚠️&amp;lt;/big&amp;gt; This wiki is &amp;lt;strong&amp;gt;deprecated&amp;lt;/strong&amp;gt; and read-only. Please use the [https://www.den4b.com/docs/ new documentation platform] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Long_paths&amp;diff=3867</id>
		<title>ReNamer:Long paths</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Long_paths&amp;diff=3867"/>
		<updated>2025-11-06T19:09:35Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Long paths in Windows */ Native long path support in Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The maximum length of paths and file/folder names is limited in every mainstream operating system and file system. The exact limits can vary significantly between systems. &lt;br /&gt;
&lt;br /&gt;
For example, in Windows 10 and earlier versions the maximum path length is limited to &#039;&#039;&#039;260 characters&#039;&#039;&#039; (MAX_PATH constant). In contrast, Linux imposes a limit of &#039;&#039;&#039;4096 bytes&#039;&#039;&#039; for full paths and &#039;&#039;&#039;255 bytes&#039;&#039;&#039; for file names. Older systems imposed even stricter limits, like [https://en.wikipedia.org/wiki/DOS DOS] with &#039;&#039;&#039;80 characters&#039;&#039;&#039; limit for full paths and only &#039;&#039;&#039;12 characters&#039;&#039;&#039; (8.3 format) for file names.&lt;br /&gt;
&lt;br /&gt;
Fortunately, this issue is slowly but surely getting addressed, in one way or another. We will also discuss ways of working around some of these limitations.&lt;br /&gt;
&lt;br /&gt;
== Long paths in Windows ==&lt;br /&gt;
&lt;br /&gt;
Modern versions of Windows operating system have an alternative file path specification mechanism which overcomes the &#039;&#039;&#039;260 characters&#039;&#039;&#039; limitation.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a conventional file path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\Very\Long\Path&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To convert a path to &amp;quot;long path&amp;quot; specification, we just need to prepend it with &amp;lt;code&amp;gt;\\?\&amp;lt;/code&amp;gt;, as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;\\?\C:\Very\Long\Path&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This effectively raises the maximum length of file paths to &#039;&#039;&#039;32,767 characters&#039;&#039;&#039;, and enables paths that end with a dot.&lt;br /&gt;
&lt;br /&gt;
However, there are other potential culprits:&lt;br /&gt;
&lt;br /&gt;
* This only raises a limitation imposed by the Windows operating system, while other limitations imposed by file systems may still apply.&lt;br /&gt;
* The support for long paths also depends on capabilities of individual applications.&lt;br /&gt;
&lt;br /&gt;
== Native long path support in Windows ==&lt;br /&gt;
&lt;br /&gt;
On Windows 10 version 1607 and later, long paths can be enabled natively, which requires:&lt;br /&gt;
&lt;br /&gt;
# The application&#039;s manifest must have the &#039;&#039;Long Path Aware&#039;&#039; feature enabled.&lt;br /&gt;
#: &amp;lt;code&amp;gt;&amp;lt;ws2:longPathAware&amp;gt;true&amp;lt;/ws2:longPathAware&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# The system must have the &amp;lt;code&amp;gt;LongPathsEnabled&amp;lt;/code&amp;gt; registry entry set to &amp;quot;1&amp;quot; (DWORD).&lt;br /&gt;
#: &amp;lt;code&amp;gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A reboot or log off/on may be required for changes to take effect.&lt;br /&gt;
&lt;br /&gt;
Once this feature is enabled, the maximum path length extends to approximately &#039;&#039;&#039;32,767 characters&#039;&#039;&#039;, without the need for &amp;lt;code&amp;gt;\\?\&amp;lt;/code&amp;gt; prefix.&lt;br /&gt;
&lt;br /&gt;
== Long paths in ReNamer ==&lt;br /&gt;
&lt;br /&gt;
ReNamer normally operates with conventional file paths, but it can also handle the &amp;quot;long path&amp;quot; specification if such was provided.&lt;br /&gt;
&lt;br /&gt;
The standard &#039;&#039;Add Files&#039;&#039; and &#039;&#039;Add Folders&#039;&#039; dialogs cannot handle long paths yet. However, you can use the &#039;&#039;Add Paths&#039;&#039; dialog from the main menu or &#039;&#039;Export/Import&#039;&#039; menu options.&lt;br /&gt;
&lt;br /&gt;
== Truncating long paths ==&lt;br /&gt;
&lt;br /&gt;
The limitation of the maximum file path can make files inaccessible by some applications, including even the &#039;&#039;Windows File Explorer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A common workaround is to truncate long paths. The truncation can be performed with the help of [[ReNamer:Rules:PascalScript|Pascal Script]] and [[ReNamer:Rules:RegEx|Regular Expressions]] rules.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.microsoft.com/windows/win32/fileio/naming-a-file Windows: Naming Files, Paths, and Namespaces]&lt;br /&gt;
* [https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation Windows: Maximum Path Length Limitation]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits Wikipedia: Comparison of file systems and limits]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3866</id>
		<title>ReNamer:Rules:Strip</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3866"/>
		<updated>2025-09-20T21:34:44Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Document &amp;quot;Unicode range&amp;quot; option.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Strip rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Extension|next=ReNamer:Rules:Case}}&lt;br /&gt;
&lt;br /&gt;
[[Image:StripRule.png]]&lt;br /&gt;
&lt;br /&gt;
Strip characters from the filename. The rule has predefined character sets, like digits, symbols and brackets, but you can also define your own character set. All occurrences of the specified characters will be removed from the filename. &lt;br /&gt;
&lt;br /&gt;
Character set parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| English&lt;br /&gt;
| &lt;br /&gt;
Strip all English characters.&lt;br /&gt;
&lt;br /&gt;
* Numbers (0-9) will not be stripped.&lt;br /&gt;
* Non-English characters will not be stripped, e.g. characters with [http://en.wikipedia.org/wiki/Diacritic diacritical mark], which are used in many languages in Europe and Asia)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Digits &lt;br /&gt;
| Strip digits 0 through 9.&lt;br /&gt;
|-&lt;br /&gt;
| Symbols &lt;br /&gt;
| Strip common symbols.&lt;br /&gt;
&lt;br /&gt;
* All characters that are considered to be symbols are showed in the box on the right.&lt;br /&gt;
|-&lt;br /&gt;
| Brackets &lt;br /&gt;
| Strip common brackets.&lt;br /&gt;
&lt;br /&gt;
* The content between the brackets will remain unaffected.&lt;br /&gt;
* If you want to delete the content as well, use the [[ReNamer:Rules:CleanUp|CleanUp]] rule instead.&lt;br /&gt;
|-&lt;br /&gt;
| User defined &lt;br /&gt;
| Specify any characters that need to be removed. &lt;br /&gt;
* Note that this is not a string. All characters in the text box will removed individually.&lt;br /&gt;
|-&lt;br /&gt;
| Unicode range&lt;br /&gt;
| Strip Unicode codepoints by their hexadecimal notation.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
* &amp;quot;10000-10FFFF&amp;quot; for [https://www.compart.com/en/unicode/plane supplementary planes],&lt;br /&gt;
* &amp;quot;200B,200C,200D,FEFF&amp;quot; for [https://www.compart.com/en/unicode/search?q=zero+width#characters zero width characters].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Positioning parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Everywhere&lt;br /&gt;
| The characters will be stripped no matter where they occur in the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Leading&lt;br /&gt;
| Strip characters only at the beginning of the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Trailing&lt;br /&gt;
| Strip characters only at the end of the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Miscellaneous parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Strip all characters except selected&lt;br /&gt;
| &lt;br /&gt;
Retains the selected characters only, and strips the rest. &lt;br /&gt;
&lt;br /&gt;
* This option is very useful to strip all non-English characters: Select this option along with the &#039;&#039;&#039;English&#039;&#039;&#039; option above.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive&lt;br /&gt;
| Strip characters in a case sensitive manner.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:StripRule.png&amp;diff=3865</id>
		<title>File:StripRule.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:StripRule.png&amp;diff=3865"/>
		<updated>2025-09-20T21:22:39Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Den4b uploaded a new version of File:StripRule.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Strip Rule&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Using_presets&amp;diff=3864</id>
		<title>ReNamer:Using presets</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Using_presets&amp;diff=3864"/>
		<updated>2025-09-19T15:41:05Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Locate presets */ Slight rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer|next=ReNamer:Presets Manager}}&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;preset&amp;quot; is a set of rules that is saved with a user-defined name. It can also save custom [[ReNamer:Filter_settings|filter settings]]. &lt;br /&gt;
&lt;br /&gt;
You can save frequently used rules as presets, and load them up on demand. You can also use saved presets for unattended renaming via [[ReNamer:Command Line|command line options]].&lt;br /&gt;
&lt;br /&gt;
== Save a preset ==&lt;br /&gt;
&lt;br /&gt;
How to create a preset:&lt;br /&gt;
&lt;br /&gt;
# [[ReNamer:Managing rules|Create a list of rules]].&lt;br /&gt;
# Configure [[ReNamer:Menus for the Files pane#Filters_menu|filter settings]], if necessary.&lt;br /&gt;
# Press &#039;&#039;&#039;CTRL + S&#039;&#039;&#039;, or use the &#039;&#039;&#039;Presets » Save As&#039;&#039;&#039; menu option.&lt;br /&gt;
# A window pops up:&amp;lt;br&amp;gt;[[Image:SavePresetDialog.png]]&lt;br /&gt;
# Enter a new name in the &#039;&#039;&#039;Name&#039;&#039;&#039; box, or select one of the existing presets listed below to overwrite it.&lt;br /&gt;
# Put a tick in the check box if you want to save the current filter settings.&lt;br /&gt;
# Press the &#039;&#039;&#039;Save&#039;&#039;&#039; button. The preset is saved. &lt;br /&gt;
&lt;br /&gt;
You can abort the process by pressing the &#039;&#039;&#039;ESC&#039;&#039;&#039; key or closing the window.&lt;br /&gt;
&lt;br /&gt;
== Load a preset ==&lt;br /&gt;
&lt;br /&gt;
Saved presets can be loaded via the &#039;&#039;&#039;Presets » Load&#039;&#039;&#039; menu or via the [[ReNamer:Presets Manager|Presets Manager]].&lt;br /&gt;
&lt;br /&gt;
For quick access, the top 9 presets can be loaded via &#039;&#039;&#039;CTRL + 1&#039;&#039;&#039; through &#039;&#039;&#039;CTRL + 9&#039;&#039;&#039; shortcut keys. Presets are sorted alphabetically, so you can rearrange their order by renaming them.&lt;br /&gt;
&lt;br /&gt;
When you load a new preset you lose the current set of rules, if you had any.&lt;br /&gt;
&lt;br /&gt;
You can also append rules from an existing preset to the current set of rules by holding down the &#039;&#039;&#039;SHIFT&#039;&#039;&#039; key when lading a preset via the &#039;&#039;&#039;Presets » Load&#039;&#039;&#039; menu. This feature is available since &#039;&#039;v7.1.0.6 Beta&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Manage presets ==&lt;br /&gt;
&lt;br /&gt;
The [[ReNamer:Presets Manager|Presets Manager]] offers several options for managing your collection of presets, including loading, merging, duplicating, renaming and deleting.&lt;br /&gt;
&lt;br /&gt;
You can access it via the &#039;&#039;&#039;Presets » Manage&#039;&#039;&#039; menu option or using the &#039;&#039;&#039;CTRL + P&#039;&#039;&#039; shortcut from the main window.&lt;br /&gt;
&lt;br /&gt;
[[File:PresetsManager.png]]&lt;br /&gt;
&lt;br /&gt;
== Presets directory structure ==&lt;br /&gt;
&lt;br /&gt;
The preset files can be structured in a directory hierarchy, as opposed to having them all in a single folder. This feature is intended to simply the management of a large collection of presets.&lt;br /&gt;
&lt;br /&gt;
[[File:ReNamer presets directory structure.png]]&lt;br /&gt;
&lt;br /&gt;
To save a preset in a directory structure you just need to specify the structured path when saving a preset.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;quot;Folder\Preset&amp;quot; will save a preset by name &amp;quot;Preset&amp;quot; in a folder by name &amp;quot;Folder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can browse to the presets folder and arrange them using the Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
== Locate presets ==&lt;br /&gt;
&lt;br /&gt;
Presets are stored as plain text files, located in the &amp;quot;Presets&amp;quot; folder:&lt;br /&gt;
&lt;br /&gt;
* In a portable version, this &amp;quot;Presets&amp;quot; folder is located in the same directory as &amp;quot;ReNamer.exe&amp;quot;.&lt;br /&gt;
* In an installer version, it is normally located in the user profile folder.&lt;br /&gt;
&lt;br /&gt;
You can find the exact location by launching ReNamer and opening the Presets Manager via &#039;&#039;Main Menu » Presets » Manage&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl+P&amp;lt;/kbd&amp;gt;). At the top of the window, you will see the path to the presets folder. There is also &#039;&#039;Main Menu » Presets » Browse&#039;&#039; option which will open Windows Explorer with the presets folder in view.&lt;br /&gt;
&lt;br /&gt;
To back up or transfer the stored presets to another location, simply copy the &amp;lt;code&amp;gt;*.rnp&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
See also [[Application Data Storage]] for additional information on locating your application data.&lt;br /&gt;
&lt;br /&gt;
== Transfer presets ==&lt;br /&gt;
&lt;br /&gt;
How to transfer presets between computers or multiple installations of ReNamer?&lt;br /&gt;
&lt;br /&gt;
Open ReNamer on the source computer, and go to &#039;&#039;Main Menu » Presets » Browse&#039;&#039;. A file browser window should open at the location where your preset files are stored.&lt;br /&gt;
&lt;br /&gt;
Copy the desired files, and then import them into ReNamer on the target computer by either manually placing the files in the presets directory or using &#039;&#039;Main Menu » Presets » Import&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Using_presets&amp;diff=3863</id>
		<title>ReNamer:Using presets</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Using_presets&amp;diff=3863"/>
		<updated>2025-09-19T15:26:06Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Transfer presets */ Slight rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer|next=ReNamer:Presets Manager}}&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;preset&amp;quot; is a set of rules that is saved with a user-defined name. It can also save custom [[ReNamer:Filter_settings|filter settings]]. &lt;br /&gt;
&lt;br /&gt;
You can save frequently used rules as presets, and load them up on demand. You can also use saved presets for unattended renaming via [[ReNamer:Command Line|command line options]].&lt;br /&gt;
&lt;br /&gt;
== Save a preset ==&lt;br /&gt;
&lt;br /&gt;
How to create a preset:&lt;br /&gt;
&lt;br /&gt;
# [[ReNamer:Managing rules|Create a list of rules]].&lt;br /&gt;
# Configure [[ReNamer:Menus for the Files pane#Filters_menu|filter settings]], if necessary.&lt;br /&gt;
# Press &#039;&#039;&#039;CTRL + S&#039;&#039;&#039;, or use the &#039;&#039;&#039;Presets » Save As&#039;&#039;&#039; menu option.&lt;br /&gt;
# A window pops up:&amp;lt;br&amp;gt;[[Image:SavePresetDialog.png]]&lt;br /&gt;
# Enter a new name in the &#039;&#039;&#039;Name&#039;&#039;&#039; box, or select one of the existing presets listed below to overwrite it.&lt;br /&gt;
# Put a tick in the check box if you want to save the current filter settings.&lt;br /&gt;
# Press the &#039;&#039;&#039;Save&#039;&#039;&#039; button. The preset is saved. &lt;br /&gt;
&lt;br /&gt;
You can abort the process by pressing the &#039;&#039;&#039;ESC&#039;&#039;&#039; key or closing the window.&lt;br /&gt;
&lt;br /&gt;
== Load a preset ==&lt;br /&gt;
&lt;br /&gt;
Saved presets can be loaded via the &#039;&#039;&#039;Presets » Load&#039;&#039;&#039; menu or via the [[ReNamer:Presets Manager|Presets Manager]].&lt;br /&gt;
&lt;br /&gt;
For quick access, the top 9 presets can be loaded via &#039;&#039;&#039;CTRL + 1&#039;&#039;&#039; through &#039;&#039;&#039;CTRL + 9&#039;&#039;&#039; shortcut keys. Presets are sorted alphabetically, so you can rearrange their order by renaming them.&lt;br /&gt;
&lt;br /&gt;
When you load a new preset you lose the current set of rules, if you had any.&lt;br /&gt;
&lt;br /&gt;
You can also append rules from an existing preset to the current set of rules by holding down the &#039;&#039;&#039;SHIFT&#039;&#039;&#039; key when lading a preset via the &#039;&#039;&#039;Presets » Load&#039;&#039;&#039; menu. This feature is available since &#039;&#039;v7.1.0.6 Beta&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Manage presets ==&lt;br /&gt;
&lt;br /&gt;
The [[ReNamer:Presets Manager|Presets Manager]] offers several options for managing your collection of presets, including loading, merging, duplicating, renaming and deleting.&lt;br /&gt;
&lt;br /&gt;
You can access it via the &#039;&#039;&#039;Presets » Manage&#039;&#039;&#039; menu option or using the &#039;&#039;&#039;CTRL + P&#039;&#039;&#039; shortcut from the main window.&lt;br /&gt;
&lt;br /&gt;
[[File:PresetsManager.png]]&lt;br /&gt;
&lt;br /&gt;
== Presets directory structure ==&lt;br /&gt;
&lt;br /&gt;
The preset files can be structured in a directory hierarchy, as opposed to having them all in a single folder. This feature is intended to simply the management of a large collection of presets.&lt;br /&gt;
&lt;br /&gt;
[[File:ReNamer presets directory structure.png]]&lt;br /&gt;
&lt;br /&gt;
To save a preset in a directory structure you just need to specify the structured path when saving a preset.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;quot;Folder\Preset&amp;quot; will save a preset by name &amp;quot;Preset&amp;quot; in a folder by name &amp;quot;Folder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can browse to the presets folder and arrange them using the Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
== Locate presets ==&lt;br /&gt;
&lt;br /&gt;
Presets are stored as plain text files, located in the &amp;quot;Presets&amp;quot; folder. In a portable version, this &amp;quot;Presets&amp;quot; folder is in the same directory as &amp;quot;ReNamer.exe&amp;quot;. In an installer version, it is normally located in Windows user profile folder.&lt;br /&gt;
&lt;br /&gt;
You can tell by launching ReNamer and opening the Presets Manager: &amp;quot;Presets &amp;gt; Manage...&amp;quot; (Ctrl+P). In the top you will see the path to the presets folder (see pictures above). There is also a menu item &amp;quot;Presets &amp;gt; Browse...&amp;quot; which will open Windows Explorer with the Presets folder in view.&lt;br /&gt;
&lt;br /&gt;
To backup or transfer the stored presets to an another location or PC, simply copy *.rnp files and you are done.&lt;br /&gt;
&lt;br /&gt;
See also [[Application Data Storage]] for additional information on locating your application data.&lt;br /&gt;
&lt;br /&gt;
== Transfer presets ==&lt;br /&gt;
&lt;br /&gt;
How to transfer presets between computers or multiple installations of ReNamer?&lt;br /&gt;
&lt;br /&gt;
Open ReNamer on the source computer, and go to &#039;&#039;Main Menu » Presets » Browse&#039;&#039;. A file browser window should open at the location where your preset files are stored.&lt;br /&gt;
&lt;br /&gt;
Copy the desired files, and then import them into ReNamer on the target computer by either manually placing the files in the presets directory or using &#039;&#039;Main Menu » Presets » Import&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter:Events&amp;diff=3862</id>
		<title>Shutter:Events</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter:Events&amp;diff=3862"/>
		<updated>2025-09-07T07:48:31Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Network usage */ Implementation notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|Shutter}}&lt;br /&gt;
&lt;br /&gt;
Below is a list of all available events. &lt;br /&gt;
&lt;br /&gt;
Remember that Shutter is often used with a &#039;&#039;set&#039;&#039; of multiple events (rather than a single event); and these events have a [[Shutter:Logic|pre-defined relationship]] between them. &lt;br /&gt;
&lt;br /&gt;
== Countdown ==&lt;br /&gt;
&lt;br /&gt;
Count down a specified amount of time. This Event is considered &amp;quot;triggered&amp;quot; when the timer reaches zero. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#If you suffer from [http://en.wikipedia.org/wiki/Repetitive_strain_injury RSI], set timer to take a break every few minutes and exercise your hands, shoulder and neck.&lt;br /&gt;
#Use Shutter as a count-down timer clock (to give alarm at the end of specified time). &lt;br /&gt;
#Play a pre-recorded sound every few minutes (to calm down a baby or a pet).&lt;br /&gt;
&lt;br /&gt;
== On Time ==&lt;br /&gt;
&lt;br /&gt;
Event is triggered when the current time (as displayed in the system tray) reaches the specified time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Launch an application (e.g. a downloader) at certain time. &lt;br /&gt;
#Share your PC on LAN till a particular time, and then turn it off at certain time.&lt;br /&gt;
&lt;br /&gt;
== Winamp Stops ==&lt;br /&gt;
&lt;br /&gt;
Event periodically checks the playback state of [http://www.winamp.com/ Winamp]. The event is triggered once it is detected that application is no longer playing the media. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; [http://forums.winamp.com/showthread.php?threadid=180297 Winamp Messaging API] is used to achieve this. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#When the WinAmp playlist is over, pause for a specified time period and then play another playlist, or hibernate the PC.&lt;br /&gt;
&lt;br /&gt;
== CPU Usage ==&lt;br /&gt;
&lt;br /&gt;
Periodically check the processor usage and trigger event when the usage stays above (or below) the specified mark for the specified amount of time.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Launch a CPU-intensive application (e.g. Blender rendering) to get the benefit of full CPU power.&lt;br /&gt;
#When CPU usage goes above certain threshold, pause the resource-intensive applications.&lt;br /&gt;
&lt;br /&gt;
== Network usage ==&lt;br /&gt;
&lt;br /&gt;
Check the network&#039;s load (select from &#039;&#039;total&#039;&#039;, &#039;&#039;upload only&#039;&#039;, or &#039;&#039;download only&#039;&#039;); and if it falls below specified limit for the specified duration, then the event is triggered. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Start a downloader when the download is below a limit.&lt;br /&gt;
#Upload a large folder when the upload falls below certain point&lt;br /&gt;
#Pause file-transfers till the total traffic in the network falls below a certain limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The actual measurement of the network usage is taken every second in all configurations. If the averaging option is disabled, then all measurements within the configured period of time (duration) must stay below the threshold in order to trigger the event. If the averaging option is enabled, then the average of all measurements within the configured period of time (duration) must stay below the threshold in order to trigger the event.&lt;br /&gt;
&lt;br /&gt;
== User Inactive ==&lt;br /&gt;
&lt;br /&gt;
Track the time of user&#039;s last mouse and keyboard activity. Trigger the event when the user has been inactive for the specified period of time. &lt;br /&gt;
&lt;br /&gt;
Methods for monitoring user inactivity:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Last Input Event&#039;&#039;&#039; - Uses &amp;lt;tt&amp;gt;GetLastInputInfo&amp;lt;/tt&amp;gt; API. Captures activity only of the initiating user session. The most stable and the least intrusive approach.&lt;br /&gt;
# &#039;&#039;&#039;Low Level Hook&#039;&#039;&#039; - Uses &amp;lt;tt&amp;gt;SetWindowsHookEx(WH_KEYBOARD_LL)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;SetWindowsHookEx(WH_MOUSE_LL)&amp;lt;/tt&amp;gt; API. Captures activity from all user sessions. Applied without injection into foreign processes to achieve a less intrusive effect, contrary to the official documentation, so it may stop working in future versions of Windows.&lt;br /&gt;
# &#039;&#039;&#039;Injection Hook&#039;&#039;&#039; - Uses &amp;lt;tt&amp;gt;SetWindowsHookEx(WH_KEYBOARD)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;SetWindowsHookEx(WH_MOUSE)&amp;lt;/tt&amp;gt; API. Captures activity from all user sessions. A tiny dedicated library file is injected into all foreign processes to capture user activity across all applications. This is a well established approach which may yield better results in some cases, but it is the most intrusive approach. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Play WinAmp when no one is using the PC (turn the PC into entertainment center). &lt;br /&gt;
#Launch a task that can otherwise slow down the PC.&lt;br /&gt;
&lt;br /&gt;
== Battery Low ==&lt;br /&gt;
&lt;br /&gt;
Monitor power battery level and trigger event when level drops below specified level. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Take backup of critical data. &lt;br /&gt;
#Close specified applications gracefully. &lt;br /&gt;
#Remind the user to plug in the laptop charger.&lt;br /&gt;
&lt;br /&gt;
== Window Closes ==&lt;br /&gt;
&lt;br /&gt;
Monitor opened windows for the specified title match. Event is triggered when specified title does not match any of the opened windows. &lt;br /&gt;
&lt;br /&gt;
*The name is NOT case-sensitive. &lt;br /&gt;
*You can specify wildcards to find a &amp;lt;u&amp;gt;partial&amp;lt;/u&amp;gt; match. For example, &#039;&#039;&#039;&#039;&#039;*Firefox*&#039;&#039;&#039;&#039;&#039;.&amp;lt;br&amp;gt;If you do not use wildcards, Shutter will look for an &amp;lt;u&amp;gt;exact&amp;lt;/u&amp;gt; match (if the actual Window name has more characters compared to the specified string, Shutter will treat it as &amp;quot;not matching&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Be careful when specifying the window name: The text should match with what you see in the &#039;&#039;&#039;Title Bar &#039;&#039;&#039;of the application (the top bar of the application&#039;s window). Sometimes the &#039;&#039;&#039;Title Bar&#039;&#039;&#039; shows the file that is opened in the application, instead of the application&#039;s name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Warn the user that the desired application has stopped running.&lt;br /&gt;
#Launch the process &#039;&#039;only if&#039;&#039; the application is not running already (to avoid multiple instances running simultaneously)&lt;br /&gt;
&lt;br /&gt;
== Process Stops ==&lt;br /&gt;
&lt;br /&gt;
Monitor all processes that match the specified filename. Event is triggered when the specified filename is not found in the list of executing processes. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Warn the user that the process has stopped. &lt;br /&gt;
#Launch the next process in sequence.&lt;br /&gt;
&lt;br /&gt;
== Ping Stops ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Ping Ping] the specified host and trigger when host is not responding for the specified period of time. Useful for monitoring availability of network services. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Warn the user that the remote PC is not communicating any more (either bad link or crash).&lt;br /&gt;
&lt;br /&gt;
== File Size ==&lt;br /&gt;
&lt;br /&gt;
Periodically check the size of the specified file and trigger the event when the selected condition is met.&lt;br /&gt;
&lt;br /&gt;
The list of available conditions:&lt;br /&gt;
&lt;br /&gt;
# file reaches a certain size;&lt;br /&gt;
# file is created;&lt;br /&gt;
# file no longer exists.&lt;br /&gt;
&lt;br /&gt;
Internally, when the file or directory does not exist, it has an effective size of &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example uses:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Take a backup of the file.&lt;br /&gt;
#Warn the user that the file size has reached the limit.&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization&amp;diff=3861</id>
		<title>Localization</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization&amp;diff=3861"/>
		<updated>2025-06-08T15:55:13Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Editing translation file */ Poedit settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes localization (translation) of applications into different languages.&lt;br /&gt;
&lt;br /&gt;
Please carefully study the material in this article before attempting to update or create a translation!&lt;br /&gt;
&lt;br /&gt;
== Translation files ==&lt;br /&gt;
&lt;br /&gt;
Translations are stored in &#039;&#039;&#039;PO files&#039;&#039;&#039; (as produced by [http://en.wikipedia.org/wiki/Gettext gettext]) which are distributed together with the application, inside &#039;&#039;&#039;Languages&#039;&#039;&#039; folder:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;Languages\Application.po&amp;lt;/tt&amp;gt; &amp;amp;ndash; &#039;&#039;&#039;Template&#039;&#039;&#039; file.&lt;br /&gt;
* &amp;lt;tt&amp;gt;Languages\Application.ru.po&amp;lt;/tt&amp;gt; &amp;amp;ndash; &#039;&#039;&#039;Russian&#039;&#039;&#039; (RU) translation file.&lt;br /&gt;
* &amp;lt;tt&amp;gt;Languages\Application.es.po&amp;lt;/tt&amp;gt; &amp;amp;ndash; &#039;&#039;&#039;Spanish&#039;&#039;&#039; (ES) translation file.&lt;br /&gt;
* &amp;lt;tt&amp;gt;Languages\Application.fr.po&amp;lt;/tt&amp;gt; &amp;amp;ndash; &#039;&#039;&#039;French&#039;&#039;&#039; (FR) translation file.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
The template file (&amp;lt;tt&amp;gt;Application.po&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;Application.pot&amp;lt;/tt&amp;gt;) is used as the basis for creating translations for new languages, not yet available in the application.&lt;br /&gt;
&lt;br /&gt;
Translation files (&amp;lt;tt&amp;gt;Application.XX.po&amp;lt;/tt&amp;gt;) contain translated text. A &#039;&#039;&#039;two-letter language code&#039;&#039;&#039; in the file extension identifies a particular language.&lt;br /&gt;
&lt;br /&gt;
== Create new translations ==&lt;br /&gt;
&lt;br /&gt;
To create a translation file for a new language:&lt;br /&gt;
# Create a copy of &amp;lt;tt&amp;gt;Application.po&amp;lt;/tt&amp;gt; (template file)&lt;br /&gt;
# Rename it to &amp;lt;tt&amp;gt;Application.XX.po&amp;lt;/tt&amp;gt; (translation file), where &#039;&#039;XX&#039;&#039; is a two-letter language code.&lt;br /&gt;
# Translate entries to the new langauge using instructions below.&lt;br /&gt;
# Populate PO file headers, copy from any other translation file and modify appropriately.&lt;br /&gt;
# Save new file using UTF-8 encoding, without byte order mark ([https://en.wikipedia.org/wiki/Byte_order_mark BOM]).&lt;br /&gt;
&lt;br /&gt;
Example of relevant entries in PO file headers for a new translation file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;quot;Language: ru\n&amp;quot;&lt;br /&gt;
&amp;quot;X-Country: ru\n&amp;quot;&lt;br /&gt;
&amp;quot;X-Country-Name: Russia\n&amp;quot;&lt;br /&gt;
&amp;quot;X-Language-Name: Russian\n&amp;quot;&lt;br /&gt;
&amp;quot;X-Language-Name-Native: Русский\n&amp;quot;&lt;br /&gt;
&amp;quot;X-Translators: Your Name &amp;lt;your.email@example.com&amp;gt;\n&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Language codes are defined in [http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO 639-1]&lt;br /&gt;
* Country codes are defined in [http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2].&lt;br /&gt;
* In conflicting and ambiguous situations:&lt;br /&gt;
*# Name the translation file using &amp;lt;tt&amp;gt;Application.XX_YY.po&amp;lt;/tt&amp;gt; format, where &#039;&#039;XX&#039;&#039; is a language code and &#039;&#039;YY&#039;&#039; is a country code.&lt;br /&gt;
*# Set &amp;lt;tt&amp;gt;X-Language-Name&amp;lt;/tt&amp;gt; header to highlight the difference between translations.&lt;br /&gt;
*: For example: &amp;quot;&amp;lt;tt&amp;gt;en_US&amp;lt;/tt&amp;gt;&amp;quot; code for &#039;&#039;English (United States)&#039;&#039;, &amp;quot;&amp;lt;tt&amp;gt;en_GB&amp;lt;/tt&amp;gt;&amp;quot; code for &#039;&#039;English (United Kingdom)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Editing translation file ==&lt;br /&gt;
&lt;br /&gt;
The process involves translation of individual textual messages to create a mapping from original text to a different language.&lt;br /&gt;
&lt;br /&gt;
Translation files (*.po) should be edited with specially designed translation tools, such as:&lt;br /&gt;
&lt;br /&gt;
* [http://poedit.net/ Poedit] &amp;amp;ndash; for Windows, Linux and Mac.&lt;br /&gt;
** Enable &amp;quot;Preserve formatting of existing files&amp;quot; option and disable &amp;quot;Wrap at&amp;quot; option in &#039;&#039;File » Preferences » Advanced&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
Translation files could also be edited manually using a text editor, but this is highly discouraged as tiny mistakes can result in corruption of the entire file.&lt;br /&gt;
&lt;br /&gt;
== Guidelines for translators ==&lt;br /&gt;
&lt;br /&gt;
Guidelines for translators:&lt;br /&gt;
* Use the most up-to-date language files from the &amp;lt;u&amp;gt;latest development version&amp;lt;/u&amp;gt; (Beta versions).&lt;br /&gt;
* Try not the exceed the length of the translated text, comparing to the length of the original text.&lt;br /&gt;
*: Some components may not fit longer text, so it is better to make it shorter rather than longer. &lt;br /&gt;
* Beware of the special formatting, symbols and placeholders, e.g. &amp;quot;\n&amp;quot;, &amp;quot;%s&amp;quot;, &amp;quot;%d&amp;quot;.&lt;br /&gt;
*: Make sure to maintain such formatting, translate only actual words.&lt;br /&gt;
* If you don&#039;t have a good translation for some text, just leave those blank.&lt;br /&gt;
*: Other people may be able to fill in the blanks later.&lt;br /&gt;
* Try to use formal but easy to understand language.&lt;br /&gt;
*: Avoid the use of slang, which may not be understood by some readers.&lt;br /&gt;
&lt;br /&gt;
Attribution to translators:&lt;br /&gt;
* Add your name to &amp;quot;&amp;lt;tt&amp;gt;X-Translators:&amp;lt;/tt&amp;gt;&amp;quot; field in PO file headers.&lt;br /&gt;
* Please keep names of other translators (separate multiple names with a comma).&lt;br /&gt;
&lt;br /&gt;
== Auxiliary translation files ==&lt;br /&gt;
&lt;br /&gt;
In addition to the main translation file, you may find auxiliary translation files in subfolders. These correspond to 3rd party components, for example, &amp;quot;LCLStrConsts&amp;quot; subfolder contains messages that appear in Lazarus Component Library (LCL). We do not handle the updates to auxiliary translation files directly, because we source that from the original vendor. If you wish, you can submit your improvements directly to the vendor.&lt;br /&gt;
&lt;br /&gt;
Updates for &amp;quot;LCLStrConsts&amp;quot; translations should submitted to the [https://www.lazarus-ide.org/ Lazarus IDE] project, using the following steps:&lt;br /&gt;
&lt;br /&gt;
# The translation should be based on the [https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/main/lcl/languages latest development files].&lt;br /&gt;
# The translation file can be submitted via the [https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues issue tracker] or as a [https://gitlab.com/freepascal.org/lazarus/lazarus/-/merge_requests merge request] (preferred).&lt;br /&gt;
&lt;br /&gt;
== Loading specific language == &lt;br /&gt;
&lt;br /&gt;
All available language files are automatically added to the &amp;quot;Languages&amp;quot; menu on startup. Select a desired language and restart the application.&lt;br /&gt;
&lt;br /&gt;
When selected language is set to &amp;quot;&#039;&#039;Autodetect&#039;&#039;&amp;quot; mode:&lt;br /&gt;
* Application automatically tries to recognize system language and loads appropriate translation file.&lt;br /&gt;
* It is also possible to load a specific language file, by either:&lt;br /&gt;
*# Adding &amp;quot;&amp;lt;tt&amp;gt;--lang XX&amp;lt;/tt&amp;gt;&amp;quot; command line parameters to the application, where &#039;&#039;XX&#039;&#039; is a two-letter language code.&lt;br /&gt;
*# Setting &amp;quot;&amp;lt;tt&amp;gt;LANG&amp;lt;/tt&amp;gt;&amp;quot; environmental variable to a two-letter language code.&lt;br /&gt;
&lt;br /&gt;
== Publishing your translation ==&lt;br /&gt;
&lt;br /&gt;
Please send new and updated translation files via email, as attachments.&lt;br /&gt;
&lt;br /&gt;
The email address can be found in the &#039;&#039;About&#039;&#039; dialog of every application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Template:Go&amp;diff=3860</id>
		<title>Template:Go</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Template:Go&amp;diff=3860"/>
		<updated>2025-04-17T13:09:32Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Allow custom page titles, increase padding and margin.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background-color: #ffe; border: 1px solid #c0c0c0; padding: 0.5em 1em; margin-bottom: 1em; font-style: italic;&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; &lt;br /&gt;
| &#039;&#039;&#039;Navigation&#039;&#039;&#039; &amp;amp;nbsp;&lt;br /&gt;
| {{#if: {{{up|}}} | [[Image:Arrow Return.png|link={{{up}}}]] [[{{{up}}}{{#if: {{{uptitle|}}} | {{!}}{{{uptitle}}} | }}]] &amp;amp;nbsp; | }}&lt;br /&gt;
| {{#if: {{{prev|}}} | [[Image:Arrow Left.png|link={{{prev}}}]] [[{{{prev}}}{{#if: {{{prevtitle|}}} | {{!}}{{{prevtitle}}} | }}]] &amp;amp;nbsp; | }}&lt;br /&gt;
| {{#if: {{{next|}}} | [[Image:Arrow Right.png|link={{{next}}}]] [[{{{next}}}{{#if: {{{nexttitle|}}} | {{!}}{{{nexttitle}}} | }}]] &amp;amp;nbsp; | }}&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Parent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Go|up=Parent Article}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Go|up=#Parent Article}}&lt;br /&gt;
&lt;br /&gt;
=== Previous and Next ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Go|prev=Previous Article|next=Next Article}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Go|prev=#Previous Article|next=#Next Article}}&lt;br /&gt;
&lt;br /&gt;
=== Parent, Previous and Next ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Go|up=Parent Article|prev=Previous Article|next=Next Article}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Go|up=#Parent Article|prev=#Previous Article|next=#Next Article}}&lt;br /&gt;
&lt;br /&gt;
=== Parent, Previous and Next, with custom titles ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Go|up=Parent Article|uptitle=My Parent Title|prev=Previous Article|prevtitle=My Previous Title|next=Next Article|nexttitle=My Next Title}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Go|up=#Parent Article|uptitle=My Parent Title|prev=#Previous Article|prevtitle=My Previous Title|next=#Next Article|nexttitle=My Next Title}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Navigation]]&lt;br /&gt;
[[Category:Exclude in print]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3859</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3859"/>
		<updated>2025-04-17T10:55:39Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Remove superfluous description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Delete rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
[[Image:DeleteRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the  &#039;&#039;&#039;Until &#039;&#039;&#039; positions.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
* The starting position (count starts from 1).&lt;br /&gt;
* The delimiter from where the deletion starts.&lt;br /&gt;
** The delimiter can be a single character or even a string.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
* Count: Specify how many characters to be deleted, starting from the FROM position. &lt;br /&gt;
* Delete until the specified delimiter is reached. &lt;br /&gt;
** You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
** The delimiter can be a single character or even a string.&lt;br /&gt;
* Delete all characters till the end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Delete current name&lt;br /&gt;
| A shortcut option for deleting the whole current name.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| Inverts the normal direction for counting a position, so that the count goes from right and towards left.&lt;br /&gt;
&lt;br /&gt;
When this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039; deletes all characters on the left, what we normally regard as the &#039;&#039;beginning&#039;&#039; of the name.&lt;br /&gt;
&lt;br /&gt;
For example, to keep only the four characters on the right side of the name and delete all the rest of the characters on the left, use:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;From:&#039;&#039;&#039; Position 5&lt;br /&gt;
* &#039;&#039;&#039;Until:&#039;&#039;&#039; Till the end&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| If you select this option, the delimiters themselves will be retained.&lt;br /&gt;
&lt;br /&gt;
If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:ReformatDate&amp;diff=3858</id>
		<title>ReNamer:Rules:ReformatDate</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:ReformatDate&amp;diff=3858"/>
		<updated>2025-04-17T10:39:45Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Reformat Date rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:UserInput}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[File:ReformatDateRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule allows finding and reformatting various date/time values in the filename.&lt;br /&gt;
&lt;br /&gt;
Allowed date/time format variables are described in the [[ReNamer:Date and Time format|Date and Time format]] article.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Find date/time format&lt;br /&gt;
| Find date and/or time matching a specified format.&lt;br /&gt;
&lt;br /&gt;
A dropdown menu provides a quick access to commonly used formats.&lt;br /&gt;
|-&lt;br /&gt;
| Convert to date/time format&lt;br /&gt;
| Convert found date and/or time values to the specified format.&lt;br /&gt;
&lt;br /&gt;
A dropdown menu provides a quick access to commonly used formats.&lt;br /&gt;
|-&lt;br /&gt;
| Match as whole words only&lt;br /&gt;
| When searching for a matching date/time pattern, match only if the found pattern is a whole word, i.e. surrounded by word boundaries.&lt;br /&gt;
&lt;br /&gt;
For example: A 4 digit year pattern (YYYY) will be found in &amp;quot;&#039;&#039;foo&#039;&#039;&#039;&#039;&#039;1234&#039;&#039;&#039;&#039;&#039;bar&#039;&#039;&amp;quot; if this option is disabled, but not found if option is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension from processing.&lt;br /&gt;
|-&lt;br /&gt;
| Use custom short months&lt;br /&gt;
| Use a custom list of short month names when searching or formatting short month name pattern (MMM). Month names are separated by a comma.&lt;br /&gt;
&lt;br /&gt;
By default, month names from the system locale are used.&lt;br /&gt;
|-&lt;br /&gt;
| Use custom long months&lt;br /&gt;
| Use a custom list of long month names when searching or formatting long month name pattern (MMMM). Month names are separated by a comma.&lt;br /&gt;
&lt;br /&gt;
By default, month names from the system locale are used.&lt;br /&gt;
|-&lt;br /&gt;
| Adjust time by&lt;br /&gt;
| This option lets you adjust date/time by any arbitrary number of years, months, days, hours, minutes, seconds and milliseconds.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:UserInput&amp;diff=3857</id>
		<title>ReNamer:Rules:UserInput</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:UserInput&amp;diff=3857"/>
		<updated>2025-04-17T10:39:36Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › User Input rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:PascalScript|next=ReNamer:Rules:ReformatDate}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:UserInputRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule replaces the original filenames with the names taken from the list. (The &#039;&#039;n&#039;&#039;th line in the list serves as the new name for the &#039;&#039;n&#039;&#039;th file in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.) &lt;br /&gt;
&lt;br /&gt;
Naturally, the list should contain names for all the files loaded in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
*If the list is shorter, then some of the files will not be renamed. &lt;br /&gt;
*If the list is longer, some of the names will remain unused (but all files in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane will be renamed).&lt;br /&gt;
&lt;br /&gt;
There are three ways to create the list: &lt;br /&gt;
&lt;br /&gt;
#Click in the pane, and manually type the list (one name per line). &lt;br /&gt;
#Copy the list from any application to your clipboard. Switch to ReNamer. Click in the &#039;&#039;&#039;UserInput&#039;&#039;&#039; pane and press &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;, right-click and select &#039;&#039;&#039;Paste&#039;&#039;&#039; or choose the &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039; from [[Image:UserInputOptionsButton.png]] menu).&lt;br /&gt;
#Load a list from the text file (available from [[Image:UserInputOptionsButton.png]] menu).&lt;br /&gt;
&lt;br /&gt;
The optional parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Insert in front of the current name &lt;br /&gt;
| Inserts the name before the file name.&lt;br /&gt;
|-&lt;br /&gt;
| Insert after the current name &lt;br /&gt;
| Inserts the name &#039;&#039;after&#039;&#039; the current name. The actual position depends on the &#039;&#039;&#039;Skip extension&#039;&#039;&#039; option.&lt;br /&gt;
|-&lt;br /&gt;
| Replace the current name &lt;br /&gt;
| Replaces the existing filename with the new name. &lt;br /&gt;
The effect on extension depends on the &#039;&#039;&#039;&#039;&#039;Skip extension&#039;&#039;&#039;&#039;&#039; option: &lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
|&lt;br /&gt;
*If the option is selected, the extension is ignored and user input strings will affect only the base name of files.&lt;br /&gt;
*If the option is deselected, user input strings will replace entire filename, &#039;&#039;including&#039;&#039; the extension, or will be added &#039;&#039;after&#039;&#039; the old extension (if the &#039;&#039;&#039;Insert after the current name&#039;&#039;&#039; option is selected).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
&lt;br /&gt;
See the [[ReNamer:Export_menu|Export menu]] for options on export and import of files and their new names.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
For example, if you have this three files:&lt;br /&gt;
* Old name 1&lt;br /&gt;
* Old name 2&lt;br /&gt;
* Old name 3&lt;br /&gt;
&lt;br /&gt;
Then your list of new names should contain exactly three lines like:&lt;br /&gt;
* New name for old name 1&lt;br /&gt;
* new name for old name 2&lt;br /&gt;
* New name for old name 3&lt;br /&gt;
&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
&lt;br /&gt;
File list is longer then the list of new names:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Second.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| Four.txt&lt;br /&gt;
| &#039;&#039;(will not be renamed)&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
&lt;br /&gt;
List of new names is longer then the file list:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Second.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;(not used)&#039;&#039;&lt;br /&gt;
| Fourth.txt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example 3 ==== &lt;br /&gt;
&lt;br /&gt;
Missed item in the list of new names can cause incorrect ordering:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Fourth.txt&lt;br /&gt;
|-&lt;br /&gt;
| Four.txt&lt;br /&gt;
| Fifth.txt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3856</id>
		<title>ReNamer:Rules:PascalScript</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3856"/>
		<updated>2025-04-17T10:39:25Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align all images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Pascal Script rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:RegEx|next=ReNamer:Rules:UserInput}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PascalScriptRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule uses [[ReNamer:Pascal Script|Pascal Script programming engine]] with syntax and conventions similar to Delphi/Pascal. ReNamer comes with some preloaded scripts. We will see how to use them, and how to add a new script. &lt;br /&gt;
&lt;br /&gt;
== Using a ready script ==&lt;br /&gt;
&lt;br /&gt;
# Click on the [[Image:ScriptsButton.png]] button (located just below the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane). &lt;br /&gt;
#: A list of scripts appears. &lt;br /&gt;
#: [[Image:PascalScriptsMenu.png]] &lt;br /&gt;
# All available scripts are listed &#039;&#039;above&#039;&#039; the line. Click on any script to load it into the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane. &lt;br /&gt;
# Edit the script if required &lt;br /&gt;
# Press [[Image:AddRuleButton.png]] button to add the script to the rule stack. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can &#039;&#039;drag and drop&#039;&#039; an existing file from your desktop of favourite explorer straight into the script window.&lt;br /&gt;
&lt;br /&gt;
Hold &amp;lt;tt&amp;gt;SHIFT&amp;lt;/tt&amp;gt; key when opening a new script to insert it into the current script at the cursor position, instead of completely replacing the current script. This can be useful when you store your commonly used functions in separate script files, and with this feature they can be easily merged into the current script.&lt;br /&gt;
&lt;br /&gt;
== Borrowing readymade scripts ==&lt;br /&gt;
&lt;br /&gt;
Even if you do not know how to write a script, you can easily use scripts written by others.&lt;br /&gt;
&lt;br /&gt;
There are two sources of such readymade scripts:&amp;lt;/br&amp;gt;&lt;br /&gt;
1. The [http://www.den4b.com/wiki/ReNamer:Scripts &#039;&#039;&#039;Scripts repository&#039;&#039;&#039;]&amp;lt;/br&amp;gt;&lt;br /&gt;
2. The [http://www.den4b.com/forum/ &#039;&#039;&#039;User Forum&#039;&#039;&#039;] &lt;br /&gt;
&lt;br /&gt;
Search for a suitable script. &lt;br /&gt;
&lt;br /&gt;
Some of these scripts have embedded comments about how to customize the script. If you cannot find a suitable script, you can request other users to write the script for you (or customize an existing script). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TIP:&#039;&#039;&#039; If you are looking for scripts only, try to use &#039;&#039;&#039;begin&#039;&#039;&#039; or &#039;&#039;&#039;end&#039;&#039;&#039; words in your search phrase as these are the words that are present in every single script.&lt;br /&gt;
&lt;br /&gt;
Once you find such a script, follow these simple steps: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| &#039;&#039;&#039;Copy the script&#039;&#039;&#039; &lt;br /&gt;
Copy the script from the forum (ensure that nothing is left out).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| &#039;&#039;&#039;Clear the ReNamer&#039;s Configuration pane&#039;&#039;&#039; &lt;br /&gt;
Open the &#039;&#039;&#039;Pascal Script&#039;&#039;&#039; Rule in ReNamer. Select the three lines you see in the &#039;&#039;&#039;Configuration&#039;&#039;&#039; pane, and press DEL or paste the script while these lines are selected. &lt;br /&gt;
*The three lines already provided in the window are meant to begin a script from scratch; but since you are pasting a ready-made script, they must be removed first, otherwise they will interfere with your script. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| &#039;&#039;&#039;Paste the script into ReNamer pane&#039;&#039;&#039; &lt;br /&gt;
Use the &#039;&#039;&#039;CTRL+V&#039;&#039;&#039; shortcut or right-click and select &#039;&#039;&#039;Paste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| &#039;&#039;&#039;Compile the script&#039;&#039;&#039; &lt;br /&gt;
Press the [[Image:TryToCompileButton.png]] button. &lt;br /&gt;
&lt;br /&gt;
*In case some error comes up, the error message will identify the line number of the faulty statement. &lt;br /&gt;
*:You can try and troubleshoot the problematic statement in the script using the [[Image:GotoButton.png]] button. &lt;br /&gt;
*:ReNamer opens a window like this: &lt;br /&gt;
*:[[Image:GotoLineDialog.png]]&lt;br /&gt;
*:Now enter the line number in the window and press &#039;&#039;&#039;OK&#039;&#039;&#039;. It takes you to the faulty statement.&lt;br /&gt;
*: Try to edit the statement and compile the script again.&lt;br /&gt;
*: (Note that if the script compiles successfully, the [[Image:GotoButton.png]] button is not required at all.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| &#039;&#039;&#039;Saving the script and giving it a name:&#039;&#039;&#039; &lt;br /&gt;
The &#039;&#039;&#039;save &#039;&#039;&#039;button is hidden under the &#039;&#039;&#039;scripts &#039;&#039;&#039;menu. So first click on the [[Image:ScriptsButton.png]] button. It pops up a window like this: &lt;br /&gt;
&lt;br /&gt;
: [[Image:PascalScriptsMenu.png]]&lt;br /&gt;
&lt;br /&gt;
Note that all the existing scripts are listed here. (When you save the new script, it will also be added to this list.) &lt;br /&gt;
&lt;br /&gt;
Select the &#039;&#039;&#039;Save script... &#039;&#039;&#039;option (at the very bottom of the menu). Another window pops up.&lt;br /&gt;
&lt;br /&gt;
: [[Image:SaveScriptDialog.png]]&lt;br /&gt;
&lt;br /&gt;
Enter a name that suggests the function of your script. Press &#039;&#039;&#039;OK&#039;&#039;&#039;. The new name is added to the list of scripts. Now use it as described [[#Using_a_ready_script|above]]. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Writing your own scripts ==&lt;br /&gt;
&lt;br /&gt;
To write your own scripts, you must have knowledge of Pascal script. Learning Pascal script is easy. Refer to the [[ReNamer:Pascal Script|Pascal Script section]].&lt;br /&gt;
&lt;br /&gt;
Here, we will assume that you already know how to write pascal scripts. &lt;br /&gt;
&lt;br /&gt;
The step-by-step procedure is as follows: &lt;br /&gt;
&lt;br /&gt;
# Click in the Configuration pane and enter the script directly. (You can also copy it from anywhere and paste it into the pane by pressing &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;. Or right-click in the pane and select the &#039;&#039;&#039;Paste&#039;&#039;&#039; option from the context menu.) &lt;br /&gt;
# Compile the script by pressing the [[Image:TryToCompileButton.png]] button located below the Configuration pane. &lt;br /&gt;
#* If an error message comes up, troubleshoot the script. The fault message usually includes the line number of the problematic statement in the script. Press the [[Image:GotoButton.png]] button and enter that line number to locate the faulty statement quickly. Then correct the errors and press the [[Image:TryToCompileButton.png]] button again. Repeat this till a &#039;&#039;&#039;&#039;&#039;Compiled successfully!&#039;&#039;&#039;&#039;&#039; message pops up. &lt;br /&gt;
# Now you can add the script as a rule by pressing [[Image:AddRuleButton.png]] button or save it for later use.&lt;br /&gt;
# To save the script press the [[Image:ScriptsButton.png]] button. A list pops up: &lt;br /&gt;
#: [[Image:PascalScriptsMenu.png]]&lt;br /&gt;
# Click on the &#039;&#039;&#039;Save Script...&#039;&#039;&#039;(the last option in the list). Now this script is added to the list (it appears above the line in the list). &lt;br /&gt;
#* Now you can use that script as described [[#Using a ready script|above]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:RegEx&amp;diff=3855</id>
		<title>ReNamer:Rules:RegEx</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:RegEx&amp;diff=3855"/>
		<updated>2025-04-17T10:35:20Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Regular Expressions rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Translit|next=ReNamer:Rules:PascalScript}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RegExRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule allows finding and replacing patterns defined as [[ReNamer:Regular Expressions|Regular Expressions]].&lt;br /&gt;
&lt;br /&gt;
Regular Expressions (RegEx) use a special syntax for describing search and replace patterns, they are very powerful and &#039;&#039;really&#039;&#039; worth learning.&lt;br /&gt;
&lt;br /&gt;
ReNamer users have posted many RegEx examples at the [http://www.den4b.com/forum/ User Forum], where you might find your particular case already solved.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The RegEx engine used in ReNamer is a little different from the mainstream [http://perldoc.perl.org/perlre.html PERL RegEx] or [http://msdn.microsoft.com/en-us/library/6wzad2b2(VS.85).aspx Windows RegEx]. You can check the syntax in the [[ReNamer:Regular Expressions|Regular Expressions]] article.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Expression &lt;br /&gt;
| RegEx pattern to match or find.&lt;br /&gt;
|-&lt;br /&gt;
| Replace &lt;br /&gt;
| RegEx pattern that replaces the found pattern.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Case-sensitive &lt;br /&gt;
| If this option is selected, ReNamer will search for the text in &#039;&#039;case-sensitive&#039;&#039; manner.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A simple set of commonly used RegEx syntax patterns is provided in the hint menu:&lt;br /&gt;
&lt;br /&gt;
[[File:RegExRuleSyntaxHint.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Translit&amp;diff=3854</id>
		<title>ReNamer:Rules:Translit</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Translit&amp;diff=3854"/>
		<updated>2025-04-17T10:35:02Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align all images and data snippets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Translit rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:CleanUp|next=ReNamer:Rules:RegEx}}&lt;br /&gt;
&lt;br /&gt;
[[Image:TranslitRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule transliterates one alphabet into another. Its main goal is to transliterate Non-English characters from different languages into their English/Latin representation. For example, the German character &#039;&#039;&#039;ü&#039;&#039;&#039; can be transliterated to &#039;&#039;&#039;ue&#039;&#039;&#039; (the name &#039;&#039;&#039;Müller &#039;&#039;&#039;can be also written as &#039;&#039;&#039;Mueller&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
This rule uses &#039;&#039;transliteration maps&#039;&#039; (explained below). &lt;br /&gt;
&lt;br /&gt;
== Transliteration maps ==&lt;br /&gt;
&lt;br /&gt;
To transliterate, we create a pair of equivalent characters, like this: &#039;&#039;&#039;ü=ue&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
(Note that the right side of this equation has &#039;&#039;two&#039;&#039; characters. Any number of characters may be placed on both sides of the equation.) &lt;br /&gt;
&lt;br /&gt;
We need several such &#039;&#039;equivalent character pairs&#039;&#039; to convert one language into another. The entire set is called a &#039;&#039;transliteration map&#039;&#039;. (This is really some kind of a find-and-replace rule.) &lt;br /&gt;
&lt;br /&gt;
ReNamer has several such built-in maps. Each map is named after a language (the second language in all maps is English). &lt;br /&gt;
&lt;br /&gt;
Each map can be used in &#039;&#039;both&#039;&#039; directions (e.g. French-to-English or English-to-French.) &lt;br /&gt;
&lt;br /&gt;
When you start up the &#039;&#039;&#039;Translit&#039;&#039;&#039; Rule, its window does not show any maps. You are free to do any of the following: &lt;br /&gt;
&lt;br /&gt;
#Use any of the built-in maps (and use it in &#039;&#039;forward&#039;&#039; or &#039;&#039;reverse&#039;&#039; direction) &lt;br /&gt;
#Create your own map and use it. &lt;br /&gt;
#Edit a built-in map first, and then use it.&lt;br /&gt;
&lt;br /&gt;
Let us see how to do this. &lt;br /&gt;
&lt;br /&gt;
== Automatic case conversion ==&lt;br /&gt;
&lt;br /&gt;
Translit rule does automatic case conversion with an algorithm adopted specifically for transliteration. Translit rule discard the case on the input, i.e. &amp;quot;A=B&amp;quot; is same as &amp;quot;a=b&amp;quot;. Case is decided upon case of the input fragment. Multiple character fragments are treated as part of words, with their case decided based on the case of letters around them.&lt;br /&gt;
&lt;br /&gt;
The logic for the case conversion is as follows (ReNamer Beta from 23 Aug 2009):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set OUTPUT-PART to lower case&lt;br /&gt;
if first letter in INPUT-PART is upper case then&lt;br /&gt;
  if length of OUTPUT-PART bigger than 1 then&lt;br /&gt;
    if next letter in original name is upper case then&lt;br /&gt;
      convert whole OUTPUT-PART to upper case&lt;br /&gt;
    else&lt;br /&gt;
      convert only first letter in OUTPUT-PART to upper case&lt;br /&gt;
  else&lt;br /&gt;
    convert whole OUTPUT-PART to upper case&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using a built-in transliteration map ==&lt;br /&gt;
&lt;br /&gt;
To select any of the built-in maps, press the [[Image:TranslitMapsButton.png]] button. A list of available transliteration maps pops up: &lt;br /&gt;
&lt;br /&gt;
[[Image:TranslitMenu.png]]&lt;br /&gt;
&lt;br /&gt;
Click on the desired transliteration map. As an example, let us click on the French (to English) transliteration map. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Rules&#039;&#039;&#039; window changes immediately to show the French characters and their English equivalents.&lt;br /&gt;
&lt;br /&gt;
[[Image:TranslitRuleExample.png]]&lt;br /&gt;
&lt;br /&gt;
You can edit any of the entry in this list, add new entries, or delete any of the entries. &lt;br /&gt;
&lt;br /&gt;
Note that such editing does not alter the saved version of the map. The map is edited just for a one-time use. If you select the same Translit map again, ReNamer will load the &#039;&#039;original&#039;&#039; version, not the &#039;&#039;edited&#039;&#039; version. You will see how to [[#Saving_a_transliteration_map|alter a transliteration map]] in a section below. &lt;br /&gt;
&lt;br /&gt;
Next, select the rule&#039;s parameters as shown below: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| forward &lt;br /&gt;
| This is transliteration from-left-to-right direction, as defined in the map.&lt;br /&gt;
|-&lt;br /&gt;
| backward &lt;br /&gt;
| This is transliteration from-right-to-left direction, as defined in the map.&lt;br /&gt;
|-&lt;br /&gt;
| skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Finally, press the [[Image:AddRuleButton.png]] button to add the rule to the stack.&lt;br /&gt;
&lt;br /&gt;
== Making your own transliteration map ==&lt;br /&gt;
&lt;br /&gt;
Click in the &#039;&#039;&#039;Translit Alphabet&#039;&#039;&#039; window, and start entering your custom alphabet.&lt;br /&gt;
&lt;br /&gt;
Transliteration alphabet consists of two equivalence parts (or a couple), which are entered one per line and two parts separated with &amp;quot;=&amp;quot; (equal sign). Alphabet should not contain spaces and should have case discarded ([[ReNamer:Rules:Translit#Automatic_case_conversion|case is adjusted automatically]]). Also, make sure to put couples which contain greater number of characters at the top, so they will get processed first and will not get processed partially by shorter representations. Below is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
щ=sh&lt;br /&gt;
ю=yu&lt;br /&gt;
я=ya&lt;br /&gt;
ь=&#039;&lt;br /&gt;
э=e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After entering all such transliterations, press the [[Image:AddRuleButton.png]] button to add the rule to the rule-stack. &lt;br /&gt;
&lt;br /&gt;
Note that this rule is not saved yet (it was just composed for a one-time use). The following topic shows how to save a map.&lt;br /&gt;
&lt;br /&gt;
== Saving a transliteration map ==&lt;br /&gt;
&lt;br /&gt;
To save a newly composed Transliteration rule, &lt;br /&gt;
&lt;br /&gt;
#Press the [[Image:TranslitMapsButton.png]] button. &lt;br /&gt;
#:A menu pops up. &lt;br /&gt;
#:[[Image:TranslitMenu.png]]&lt;br /&gt;
#Select the last option (&#039;&#039;&#039;Save Translit...&#039;&#039;&#039;). &lt;br /&gt;
#:A window pops up, as shown below: &lt;br /&gt;
#:[[Image:SaveTranslitMapDialog.png]]&lt;br /&gt;
#Enter a new name for the map and press &#039;&#039;&#039;OK&#039;&#039;&#039;. The new map is saved.&lt;br /&gt;
&lt;br /&gt;
The process of saving an edited Transliteration map is similar. The only difference is that the &#039;&#039;&#039;Save Translit &#039;&#039;&#039;window (see above) shows the current map&#039;s name. You can press &#039;&#039;&#039;OK&#039;&#039;&#039; to save the changes you&#039;ve just made, or enter a new name to create a new translit map for the edited version of the current map. &lt;br /&gt;
&lt;br /&gt;
The new map&#039;s name is added to the map list. &lt;br /&gt;
&lt;br /&gt;
From now on, the new map will also be available as &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Unicode character forms ==&lt;br /&gt;
&lt;br /&gt;
Have you encounter a case where some characters don&#039;t get converted, despite having a visually identical character defined in the Translit alphabet?&lt;br /&gt;
&lt;br /&gt;
Unicode characters can be defined using exact character codes or using [https://en.wikipedia.org/wiki/Combining_character combining characters]. The displayed characters will look identical, but their binary content is completely different. The conversion process between these forms is covered by the [https://unicode.org/reports/tr15/ Unicode Normalization] standard.&lt;br /&gt;
&lt;br /&gt;
Alphabets in the Translit rule are normally defined using exact character codes, so the combining characters won&#039;t get affected. You can put a piece of text through a &#039;&#039;Unicode analyzer&#039;&#039; to see exactly how each character is defined and to identify the use of combining characters.&lt;br /&gt;
&lt;br /&gt;
To handle all possible forms of the same visual character in Translit alphabets, one could define all possible forms in an alphabet or one can simply strip away those combining characters, which can be accomplished by using the &amp;quot;Strip unicode marks&amp;quot; option found in the [[ReNamer:Rules:CleanUp|Clean Up rule]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:CleanUp&amp;diff=3853</id>
		<title>ReNamer:Rules:CleanUp</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:CleanUp&amp;diff=3853"/>
		<updated>2025-04-17T10:32:29Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Clean Up rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Padding|next=ReNamer:Rules:Translit}}&lt;br /&gt;
&lt;br /&gt;
[[Image:CleanUpRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule cleans up the filenames from (or for) commonly used naming conventions for Internet, peer-to-peer networks and other resources. Multiple problems can be removed at once. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Details&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Strip out content of brackets &lt;br /&gt;
| A typical use of this option is to strip the needless comments attached to filenames, such as &#039;&#039;&#039;(best!!)&#039;&#039;&#039;. &lt;br /&gt;
*This option removes the brackets also. &lt;br /&gt;
*You can select any/all of the various types of brackets.&lt;br /&gt;
&lt;br /&gt;
If you do NOT want to delete the content within the brackets, use the [[ReNamer:Rules:Strip|Strip]] rule instead.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace these characters with spaces &lt;br /&gt;
| These characters occurring in the file names are removed and a space is inserted in their place.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Fix spaces&lt;br /&gt;
| Replace multiple consecutive spaces with a single space.&lt;br /&gt;
It also removes spaces from the beginning and the end of the filename:&lt;br /&gt;
*If &#039;&#039;&#039;skip extension&#039;&#039;&#039; is selected it removes spaces from the beginning and end of the &#039;&#039;base name&#039;&#039; (&#039;&#039;before&#039;&#039; the extension).&lt;br /&gt;
*If &#039;&#039;&#039;skip extension&#039;&#039;&#039; is deselected it removes spaces from the beginning and from the end of the &#039;&#039;filename&#039;&#039; (&#039;&#039;after&#039;&#039; the extension).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Normalize unicode spaces&lt;br /&gt;
| Replace all Unicode white space characters with a standard space bar character code. [[Unicode]] character set contains a number of different characters (&amp;lt;tt&amp;gt;C1_SPACE&amp;lt;/tt&amp;gt; type) that represent a white space with slightly different properties (e.g. wider, narrower, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Strip unicode marks&lt;br /&gt;
| Strip unicode marks, including combining marks, diacritics and accents. &lt;br /&gt;
&lt;br /&gt;
For example, it will convert &amp;quot;á&amp;quot; to &amp;quot;a&amp;quot;, &amp;quot;Ñ&amp;quot; to &amp;quot;N&amp;quot;, &amp;quot;X̅&amp;quot; to &amp;quot;X&amp;quot;, and so on.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert a space in front of capitalized letters&lt;br /&gt;
| Often words in the file name are just joined together, without spaces or underscores to separate them. Each word begins with a capital letter, so that you can read it easily.&lt;br /&gt;
&lt;br /&gt;
This option separates such words in the file name.&lt;br /&gt;
:For example, &#039;&#039;&#039;SeparateTheseWords.pdf&#039;&#039;&#039; becomes &#039;&#039;&#039;Separate These Words.pdf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
(Note that if there is a capitalized letter at the very beginning of the name, ReNamer does NOT add a space before it.) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prepare for SharePoint &lt;br /&gt;
| Prepares the file for hosting it on [http://www.microsoft.com/sharepoint/prodinfo/what.mspx Microsoft Sharepoint]. &lt;br /&gt;
#strips standard forbidden filename characters &lt;br /&gt;
#strips consecutive dots &lt;br /&gt;
#strips &#039;&#039;&#039;#&#039;&#039;&#039;, &#039;&#039;&#039;%&#039;&#039;&#039;, &#039;&#039;&#039;~&#039;&#039;&#039;, &#039;&#039;&#039;&amp;amp;amp;&#039;&#039;&#039; &lt;br /&gt;
#replaces &#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039; with &#039;&#039;&#039;(&#039;&#039;&#039; and &#039;&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Padding&amp;diff=3852</id>
		<title>ReNamer:Rules:Padding</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Padding&amp;diff=3852"/>
		<updated>2025-04-17T10:32:20Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Padding rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Randomize|next=ReNamer:Rules:CleanUp}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PaddingRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule allows you to apply or remove zero padding to/from number sequences, or add text padding using custom characters.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;number sequences&amp;quot; parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add zero padding to length&lt;br /&gt;
| Apply zero padding to number sequences until the number of digits reaches a specified count (length).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Remove zero padding&lt;br /&gt;
| Strip away leading zeros from all number sequences.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;text padding&amp;quot; parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add padding to length&lt;br /&gt;
| Add custom text padding either form the left or the right side of the subject.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Padding characters&lt;br /&gt;
| A sequence of custom characters which will be used as the padding material.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Choose either the left or the right side for adding the text padding.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
General parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Randomize&amp;diff=3851</id>
		<title>ReNamer:Rules:Randomize</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Randomize&amp;diff=3851"/>
		<updated>2025-04-17T10:32:15Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Randomize rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Serialize|next=ReNamer:Rules:Padding}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RandomizeRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule inserts randomly generated sequences of specified length and using a selection characters (digits, letters, or a custom set).&lt;br /&gt;
&lt;br /&gt;
Several common practical uses:&lt;br /&gt;
# Randomize the order files.&lt;br /&gt;
# Destroy existing filenames.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Length of random sequence&lt;br /&gt;
| Specify how many characters your random sequence should have. &lt;br /&gt;
&lt;br /&gt;
For example, if you are using only digits and set length to 4, you will will get random numbers from 0000 to 9999 (inclusive).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Unique if possible&lt;br /&gt;
| Normally, randomly generated values can repeat themselves. If this option is selected, ReNamer will generate unique values (no repetition) when possible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Characters to use&lt;br /&gt;
| The set of characters which will be used for generating random sequences.&lt;br /&gt;
&lt;br /&gt;
You can choose between using digits (0..9), English letters (a..z) or specify your custom set of characters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert where&lt;br /&gt;
| Specify where to insert the number (see below for individual options). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options for where to insert the number:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prefix&lt;br /&gt;
| Before the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Suffix&lt;br /&gt;
| After the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Insert the number at the specified position.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| Inserted number replaces the entire filename.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension when calculating the position for insertion.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Serialize&amp;diff=3850</id>
		<title>ReNamer:Rules:Serialize</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Serialize&amp;diff=3850"/>
		<updated>2025-04-17T10:32:04Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Serialize rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Case|next=ReNamer:Rules:Randomize}}&lt;br /&gt;
&lt;br /&gt;
[[Image:SerializeRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule works on a set of files, and inserts incremental numeric series of digits in the names of those filenames.&lt;br /&gt;
&lt;br /&gt;
The files listed in the pane can be numbered in increasing or decreasing order, with various steps, repeat and reset configuration. The position of each file in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane becomes important, so check the order of the files in the list before applying this rule.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
# You have a bunch of log files, and you want to make them look like &amp;quot;log0001&amp;quot;, &amp;quot;log0002&amp;quot;, &amp;quot;log0003&amp;quot;, etc.&lt;br /&gt;
# You want to force specific sorting for files: &amp;quot;01 - Song XYZ&amp;quot;, &amp;quot;02 - Song ABC&amp;quot;, &amp;quot;03 - Song YYY&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Index start&lt;br /&gt;
| Starting number. For example, if the destination folder already has some files with serialized numbers, you can start with the next number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Step&lt;br /&gt;
| Increment the index by this value after each processed file. Usually 1, but you may like to enter a higher number here if files with intermediate numbers are expected later. Also, negative numbers can be used to make decremental indexes, e.g. -1, -2, -3, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Repeat&lt;br /&gt;
| How many times to repeat (reuse) the same index before incrementing it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset every&lt;br /&gt;
| Reset index to the initial value after processing this many files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset if folder changes&lt;br /&gt;
| Since ReNamer can work on files collected from multiple folders, this control allows you to reset the counter for each of those folders. The effect is as if you are repeating the same command for each of the folders separately.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset if file name changes&lt;br /&gt;
| Reset the counter when the file name changes. This option is especially useful for fixing (serializing) duplicated file names, when the files with the same name are grouped together, which can be achieved by sorting the files by name or path.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Pad with zeros to length&lt;br /&gt;
| Pad the inserted number with leading zeros. For example, &amp;quot;457&amp;quot; becomes &amp;quot;000457&amp;quot; if it is padded to reach 6 digits, and &amp;quot;0457&amp;quot; if padded to 4 digits.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert where&lt;br /&gt;
| Specify where to insert the number (see below for individual options).&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Insert location ===&lt;br /&gt;
&lt;br /&gt;
Options for where to insert the number:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prefix&lt;br /&gt;
| Before the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Suffix&lt;br /&gt;
| After the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Insert the number at the specified position.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| Inserted number replaces the entire filename.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension when calculating the position for insertion.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numbering system ===&lt;br /&gt;
&lt;br /&gt;
A choice of the &#039;&#039;&#039;Numbering system&#039;&#039;&#039; dictates which symbols and enumeration technique are used for the serialization.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Number system&lt;br /&gt;
! Description / Examples&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Decimal digits&lt;br /&gt;
| Index starts at 0 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| English letters&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;a, b, c, …, x, y, z, ba, bb, bc, …, bx, by, bz, ca, cb, cc, …, zx, zy, zz, baa, bab, bac, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 1 with repeat 1 and step 1, pad to length 3:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;aaa, aab, aac, …, aax, aay, aaz, aba, abb, abc, …, abx, aby, abz, aca, acb, acc, …, azx, azy, azz, baa, bab, bac, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Roman numerals&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;I, II, III, IV, V, VI, VII, VIII, IX, X, XI, XII, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Music notes&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;C0, C#0, D0, D#0, E0, F0, F#0, G0, G#0, A0, A#0, B0, C1, C#1, …&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Added in ReNamer 7.3.0.2 Beta.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Simplified Chinese&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;一, 二, 三, 四, 五, 六, 七, 八, 九, 一十, 一十一, 一十二, 一十三, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Custom alphabetic&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1, using &amp;quot;ABC&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;A, B, C, BA, BB, BC, CA, CB, CC, BAA, BAB, BAC, BBA, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 1 with repeat 1 and step 1, using &amp;quot;01&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Custom numeric&lt;br /&gt;
| Index starts at 0 with repeat 1 and step 1, using &amp;quot;ABC&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;A, B, C, BA, BB, BC, CA, CB, CC, BAA, BAB, BAC, BBA, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 0 with repeat 1 and step 1, using &amp;quot;01&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=3849</id>
		<title>ReNamer:Rules:Case</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=3849"/>
		<updated>2025-04-17T10:31:41Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Case rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Strip|next=ReNamer:Rules:Serialize}}&lt;br /&gt;
&lt;br /&gt;
[[Image:CaseRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule changes the case of the filename. Options are: capitalize, to lower case, to upper case, invert case, and put only first letter capital (as in a sentence). &lt;br /&gt;
&lt;br /&gt;
There is also an option to force case for specific text-fragments, such as CD, DVD, RF, etc. These fragments would not look natural in any other case (e.g. cd, dvd, rf), so the rule allows you to prevent changing the case of such terms in one stroke. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Case change &lt;br /&gt;
| Several options are offered. &lt;br /&gt;
*The case of each option itself illustrates how that option works. For example, &#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039; will first make all letters lowercase and then convert the first letter of each word into UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; will convert the first letter of each word into UPPERCASE; but will not affect the rest of the letters.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;all lower case&#039;&#039;&#039; will convert all letters to lowercase.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;ALL UPPERCASE&#039;&#039;&#039; will convert all letters to UPPERCASE. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iNVERT cASE&#039;&#039;&#039; will change all capital letters to lowercase, and all lowercased letters to UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;First letter capital&#039;&#039;&#039; will change only the first letter to UPPERCASE, and rest of the letters to lowercase. (Compare this with the &#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; option above.)&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;(none of the above)&#039;&#039;&#039; option is provided to disable the case conversions listed above it, so you could independently use the options listed on the right side of the window. This allows you to convert the case of extension, or case-convert specific text fragments (see below).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Force case for fragments &lt;br /&gt;
| &lt;br /&gt;
This option forces the case of specified text-fragments (strings) in the file name. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: This check box is coupled with the box below it. (Enter the fragments in the box and then activate the option by selecting the check box.) &lt;br /&gt;
&lt;br /&gt;
*You can set any case for the strings (ALLCAPS, Only first letter capitalized, lowercase, MixedCase, etc.)&lt;br /&gt;
&lt;br /&gt;
*You can specify &#039;&#039;multiple&#039;&#039; strings at a time, each with its own case format. To separate the strings from each other, put a comma between them.&amp;lt;br&amp;gt;(Note: In versions prior to v5.50, a space was used instead of a comma.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The case for these strings will be set exactly as entered in the box, regardless of the options selected in &#039;&#039;&#039;Case change&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always upper case &lt;br /&gt;
| Forces the extension to uppercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;all lowercase&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into lowercase too. But if the &#039;&#039;&#039;Extension always upper case &#039;&#039;&#039;option is selected, the case of the extension will be converted to uppercase. This setting will override even the fragments case-conversion.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always lower case &lt;br /&gt;
| Forces the extension to lowercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;ALL UPPER CASE&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into ALLCAPS. But if the &#039;&#039;&#039;Extension always lower case&#039;&#039;&#039; option is selected, the case of the extension will be converted to lowercase. This setting will override even the fragments case-conversion. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples of Force case option ===&lt;br /&gt;
&lt;br /&gt;
You may want to use a very specific case format for certain text fragments, irregardless of other case options.&lt;br /&gt;
&lt;br /&gt;
Here are some typical examples where &amp;quot;Force case&amp;quot; option may be useful: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Desired case format&lt;br /&gt;
! Examples&lt;br /&gt;
|-&lt;br /&gt;
| ALLCAPS&lt;br /&gt;
| CD, DVD, TV, HTML, XML, C++, USA, GIMP&lt;br /&gt;
|-&lt;br /&gt;
| Only the First letter capitalized&lt;br /&gt;
| Java, India, English, Sunday, Easter, February&lt;br /&gt;
|-&lt;br /&gt;
| Mixed case&lt;br /&gt;
| OpenSUSE, OpenOffice, ReNamer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3848</id>
		<title>ReNamer:Rules:Strip</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3848"/>
		<updated>2025-04-17T10:31:27Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Strip rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Extension|next=ReNamer:Rules:Case}}&lt;br /&gt;
&lt;br /&gt;
[[Image:StripRule.png]]&lt;br /&gt;
&lt;br /&gt;
Strip characters from the filename. The rule has predefined character sets, like digits, symbols and brackets, but you can also define your own character set. All occurrences of the specified characters will be removed from the filename. &lt;br /&gt;
&lt;br /&gt;
Character set parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| English&lt;br /&gt;
| &lt;br /&gt;
Strip all English characters.&lt;br /&gt;
&lt;br /&gt;
* Numbers (0-9) will not be stripped.&lt;br /&gt;
* Non-English characters will not be stripped, e.g. characters with [http://en.wikipedia.org/wiki/Diacritic diacritical mark], which are used in many languages in Europe and Asia)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Digits &lt;br /&gt;
| Strip digits.&lt;br /&gt;
|-&lt;br /&gt;
| Symbols &lt;br /&gt;
| Strip symbols.&lt;br /&gt;
&lt;br /&gt;
* All characters that are considered to be symbols are showed in the box on the right.&lt;br /&gt;
|-&lt;br /&gt;
| Brackets &lt;br /&gt;
| Strip brackets.&lt;br /&gt;
&lt;br /&gt;
* The content between the brackets will remain unaffected.&lt;br /&gt;
* If you want to delete the content as well, use the [[ReNamer:Rules:CleanUp|CleanUp]] rule instead.&lt;br /&gt;
|-&lt;br /&gt;
| User-defined &lt;br /&gt;
| Define any character that needs to be stripped off. &lt;br /&gt;
* Note that this is not a string. All characters in the text box will removed individually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Positioning parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Everywhere&lt;br /&gt;
| The characters will be stripped no matter where they occur in the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Leading&lt;br /&gt;
| Strip characters only at the beginning of the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Trailing&lt;br /&gt;
| Strip characters only at the end of the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Miscellaneous parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Strip all characters except selected&lt;br /&gt;
| &lt;br /&gt;
Retains the selected characters only, and strips the rest. &lt;br /&gt;
&lt;br /&gt;
* This option is very useful to strip all non-English characters: Select this option along with the &#039;&#039;&#039;English&#039;&#039;&#039; option above.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive&lt;br /&gt;
| Strip characters in a case sensitive manner.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=3847</id>
		<title>ReNamer:Rules:Extension</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=3847"/>
		<updated>2025-04-17T10:31:15Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Extension rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Rearrange|next=ReNamer:Rules:Strip}}&lt;br /&gt;
&lt;br /&gt;
[[Image:ExtensionsRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule allows you to attach a new extension. It is useful when the extension of a file is missing (or if the file has a wrong extension). There is an option to find the correct extension based on the file&#039;s structure. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| New extension &lt;br /&gt;
| New extension that has to be added to the filename. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Append to the original filename &lt;br /&gt;
| If this option is selected, the new extension will be placed after the old extension. &lt;br /&gt;
If it is deselected (default option) the new extension will replace the old one.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Detect using binary signature &lt;br /&gt;
| Try to detect a correct file extension using built-in [[#Binary signatures|Binary signatures]] of commonly used files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Binary signatures ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the extension of a file is missing. At other times it is simply wrong, e.g. some downloaded files get the &#039;&#039;&#039;aspx&#039;&#039;&#039; extension, although they may &#039;&#039;actually&#039;&#039; be &#039;&#039;&#039;zip &#039;&#039;&#039;or &#039;&#039;&#039;pdf&#039;&#039;&#039; files. One way to identify the file extension is by trial-and-error: Attach different extensions and try to open the file with its associated application. This is very tedious. &lt;br /&gt;
&lt;br /&gt;
A far more efficient way is to compare the file&#039;s &#039;&#039;digital signature&#039;&#039; with the signatures of known file types and identify the file&#039;s type. This is done internally within ReNamer, so you do not have to know what a &#039;&#039;digital signature&#039;&#039; means, or the actual value of the signature for the given file. &lt;br /&gt;
&lt;br /&gt;
Note that each extension has a range of signatures, and these ranges overlap. This means a given file&#039;s signature may match with the signature of several different extensions. In such cases, ReNamer shows the New filename with all matching extensions. For example, &amp;quot;&amp;lt;tt&amp;gt;fileName.wma|wmv|asf&amp;lt;/tt&amp;gt;&amp;quot;. ReNamer also pops up an error window (because the combined extension is invalid). Just read the suggested extensions and then try them out one by one. This method is still better compared to making wild guesses, because ReNamer suggests only 2-3 extensions.&lt;br /&gt;
&lt;br /&gt;
For more accurate results, use [[ReNamer:Scripts:TrID|ReNamer with TrID library]], a specialized utility for identifying the file&#039;s real extension. Be aware that even TrID often suggests multiple extensions, and you may still have to try them out.&lt;br /&gt;
&lt;br /&gt;
=== Filename starts with a dot ===&lt;br /&gt;
&lt;br /&gt;
Many operating systems treat the dot at the start of the filename as an indicator that the file should be hidden. For that reason, the dot at the start of the filename is not considered as a file extension delimiter.&lt;br /&gt;
&lt;br /&gt;
This behavior can be toggled via an option in the settings file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;FirstDotAtFileNameStartIsExtension=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The settings file is normally located in the [[Application Data Storage]].&lt;br /&gt;
&lt;br /&gt;
Examples of filenames and their considered extension depending on the value of the option:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Filename&lt;br /&gt;
! Extension if 1&lt;br /&gt;
! Extension if 0&lt;br /&gt;
|-&lt;br /&gt;
| file.ext&lt;br /&gt;
| .ext&lt;br /&gt;
| .ext&lt;br /&gt;
|-&lt;br /&gt;
| .file.ext&lt;br /&gt;
| .ext&lt;br /&gt;
| .ext&lt;br /&gt;
|-&lt;br /&gt;
| .file&lt;br /&gt;
| .file&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3846</id>
		<title>ReNamer:Rules:Rearrange</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3846"/>
		<updated>2025-04-17T10:30:54Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Rearrange rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Replace|next=ReNamer:Rules:Extension}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RearrangeRule.png]] &lt;br /&gt;
&lt;br /&gt;
This rule allows you to chop up the existing file name and reuse any/all of the parts in any order to compose a new name. &lt;br /&gt;
&lt;br /&gt;
*You can also add your own text, or use meta tags while composing the new name. &lt;br /&gt;
*You can also use the whole original name, and insert literal text (or meta tags) around it.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Split using &lt;br /&gt;
| &lt;br /&gt;
Specifies how to split the existing name into parts. &lt;br /&gt;
&lt;br /&gt;
*You can use only one of the three options at a time (you cannot combine the chopping methods)&lt;br /&gt;
&lt;br /&gt;
For detailed explanation of split methods please look below at the [[#Split options explained|split options explained]] section.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] &lt;br /&gt;
| Add a separator for additional delimiters. The separator is a &amp;quot;{{Pipe}}&amp;quot; (vertical pipe) character, which can also be entered manually.&lt;br /&gt;
|-&lt;br /&gt;
| New pattern &lt;br /&gt;
| &lt;br /&gt;
How to compose the new name from the parts created from the original name (see above). &lt;br /&gt;
&lt;br /&gt;
*You can add meta tags and literal text wherever you want. &lt;br /&gt;
*$0 refers to the whole original name. This allows you to quickly compose a new name by inserting a string at the beginning and/or end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]]. Select any meta tag to insert it in the new name template.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| &lt;br /&gt;
If selected, the numbering starts from right. &lt;br /&gt;
&lt;br /&gt;
*The characters of the original names are counted from right (the count begins with 1) &lt;br /&gt;
*The chopped parts will also be numbered from right ($1, $2, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Split options explained ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name where the delimiter occurs. &lt;br /&gt;
&lt;br /&gt;
*The delimiter can be a single character or a string. &lt;br /&gt;
*The chopped parts do &amp;lt;u&amp;gt;&#039;&#039;not&#039;&#039;&amp;lt;/u&amp;gt; contain the delimiters (they are omitted totally) &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*Several delimiters can be used at a time. Use the {{pipe}} character to separate them. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
*If the delimiter occurs at the very beginning of the name, the resultant $1 contains nothing (because there is nothing on the left side of the delimiter).&lt;br /&gt;
:The same is true if an delimiter match at the very end of the name, the resultant $n contains nothing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The number of parts into which the filename is broken down depends solely on the number of delimiters in the filename. If you reference fewer parts in the output pattern that the number of available parts - not referenced parts will be lost! For example, take filename &amp;quot;Artist - Title&amp;quot; and to swap them around one would use &amp;quot; - &amp;quot; as a delimiter and &amp;quot;$2 - $1&amp;quot; as a new pattern which will result in &amp;quot;Title - Artist&amp;quot;, but if some filename appears with more dashes like &amp;quot;Artist - Title - Album&amp;quot; the result will also be &amp;quot;Title - Artist&amp;quot; and last part will be lost. To make sure that no parts are lost use &#039;&#039;&#039;Exact pattern of delimiters&#039;&#039;&#039; option instead. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Positions &lt;br /&gt;
| &lt;br /&gt;
Chop the name at the indicated position (the position count begins with 1). &lt;br /&gt;
&lt;br /&gt;
*If you enter position &#039;&#039;&#039;n&#039;&#039;&#039;, ReNamer will chop the &#039;&#039;&#039;n&#039;&#039;&#039;-th character and all characters beyond that in a separate piece. &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*No part of the original name is omitted during chopping. &lt;br /&gt;
*You can enter multiple positions. Separate them with the &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039; sequence. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Exact pattern of delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name using the exact pattern (sequence) of the delimiters. &lt;br /&gt;
&lt;br /&gt;
With this option you basically define how many parts you want the filename to be split into and the order in which the delimiters must occur. If you specify 1 delimiter then you end up with exactly 2 parts, if you specify 2 delimiters you&#039;ll get 3 parts, and so on. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
This rule is so versatile that it can be used in a huge number of ways.&lt;br /&gt;
Therefore its examples have been moved to a separate article [[ReNamer:Rules:Rearrange Examples|Rearrange Examples]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Replace&amp;diff=3845</id>
		<title>ReNamer:Rules:Replace</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Replace&amp;diff=3845"/>
		<updated>2025-04-17T10:30:46Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Replace rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Remove|next=ReNamer:Rules:Rearrange}}&lt;br /&gt;
&lt;br /&gt;
[[Image:ReplaceRule.png]]&lt;br /&gt;
&lt;br /&gt;
This rule removes the specified string from the name and replaces it with another string. It has options to replace the first occurrence, the last occurrence, or all the occurrences. You can replace multiple strings at a time. You can also use wildcards to create simple patterns.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Find &lt;br /&gt;
| Enter the string to be replaced. &lt;br /&gt;
*You can enter multiple strings at a time. They will be searched &amp;amp;amp; replaced in the order as they appear. Press the + button to insert a separator between two strings. Instead of pressing this button, you can also enter &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039; from the keyboard. &lt;br /&gt;
*If the name does not contain the specified string, the rule will not act on it. &lt;br /&gt;
*If the name contains more than one of these strings, it will replace them according to the Occurrences parameter.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] button &lt;br /&gt;
| Inserts a separator (&#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039;) sequence between two delimiter entries.&lt;br /&gt;
&lt;br /&gt;
In that case, the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; entry in the &#039;&#039;&#039;Find&#039;&#039;&#039; field is replaced by the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; entry in the &#039;&#039;&#039;Replace&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace &lt;br /&gt;
| Enter strings that will replace the &amp;quot;Find&amp;quot; strings. &lt;br /&gt;
&lt;br /&gt;
Note that the number of strings (separated with &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039;) in &amp;quot;Find&amp;quot; and &amp;quot;Replace&amp;quot; fields should be the same. If there is more strings in the &amp;quot;Find&amp;quot; field than in the &amp;quot;Replace&amp;quot; field the spare strings will be removed (replaced with an empty string). If there is more strings in the &amp;quot;Replace&amp;quot; field, the spare strings will be ignored.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
&lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Occurrences &lt;br /&gt;
| In case that strings occur more than once in the filename, specify which occurrences should be replaced.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive &lt;br /&gt;
| Will only remove a specified string from the name if the case matches exactly.&lt;br /&gt;
|-&lt;br /&gt;
| Whole words only&lt;br /&gt;
| Remove the subject text only when it is whole word, not a part of another word.&lt;br /&gt;
&lt;br /&gt;
For example, searching for &amp;quot;bar&amp;quot; would not find a match in &amp;quot;foobar&amp;quot; or &amp;quot;bars&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Interpret symbols as wild cards &lt;br /&gt;
| Treat certain symbols as [[#Wildcards|Wildcards]] for matching simple patterns (similar to [[ReNamer:Regular Expressions|Regular Expressions]]). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wildcards ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wildcard&lt;br /&gt;
! Represents&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;*&amp;lt;/center&amp;gt; &lt;br /&gt;
| any number of characters (including numbers, space, underscores, etc.). &lt;br /&gt;
| &#039;&#039;&#039;abc*&#039;&#039;&#039; equals &#039;&#039;&#039;abc&#039;&#039;&#039; followed by 0 or more characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;?&amp;lt;/center&amp;gt; &lt;br /&gt;
| Any single character (including numbers, space, underscores, etc.) &lt;br /&gt;
| &#039;&#039;&#039;ab?d&#039;&#039;&#039; equals &#039;&#039;&#039;abcd&#039;&#039;&#039;, &#039;&#039;&#039;ab1d&#039;&#039;&#039;, &#039;&#039;&#039;ab d&#039;&#039;&#039;, &#039;&#039;&#039;ab_d&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;[]&amp;lt;/center&amp;gt; &lt;br /&gt;
| Brackets enclose a set of characters, any one of which may match a single character at that position. &lt;br /&gt;
| &#039;&#039;&#039;foo[ab]ar &#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039; and &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;-&amp;lt;/center&amp;gt; &lt;br /&gt;
| (only within a pair of brackets) denotes a range of characters. &lt;br /&gt;
| &#039;&#039;&#039;foo[a-z]ar &#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039;, &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foocar,&#039;&#039;&#039; &#039;&#039;&#039;foodar,&#039;&#039;&#039; etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Backreferences allow for reuse of wildcard matches in the Replace field using the &#039;&#039;&#039;$N&#039;&#039;&#039; notation, where &#039;&#039;&#039;$1&#039;&#039;&#039; is the first wildcard match, &#039;&#039;&#039;$2&#039;&#039;&#039; is second, and so on.&lt;br /&gt;
&lt;br /&gt;
Examples of the use of backreferences:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Find&lt;br /&gt;
! Replace&lt;br /&gt;
! Example Input&lt;br /&gt;
! Produced Output&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;*, *&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;$2 $1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Smith, John&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;John Smith&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Happy ?-th birthday *&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;$2 is $1 years old&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Happy 5-th birthday Bob&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Bob is 5 years old&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beware of conflicting replacements == &lt;br /&gt;
&lt;br /&gt;
If you enter multiple find and replace strings they will be executed as multiple Replace rules, so first string will go first and only after replacing all (or first, or last) occurrences of that string the second string in the Find field will be searched and replaced.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Find&lt;br /&gt;
! Replace&lt;br /&gt;
|-&lt;br /&gt;
| A*{{Pipe}}*B&lt;br /&gt;
| B*{{Pipe}}*A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! New Name&lt;br /&gt;
|-&lt;br /&gt;
| ABBA.mp3&lt;br /&gt;
| AAAA.mp3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may expect the new name to be &amp;lt;tt&amp;gt;BAAB.mp3&amp;lt;/tt&amp;gt;, but it&#039;s not. This happens because first all &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;&#039;s are replaced with &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;&#039;s (we get &amp;lt;tt&amp;gt;BBBB.mp3&amp;lt;/tt&amp;gt;) and only then all &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;&#039;s are replaced with &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;&#039;s (and the final result is &amp;lt;tt&amp;gt;AAAA.mp3&amp;lt;/tt&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
If you need to apply character-to-character mappings you should use [[ReNamer:Rules:Translit|Translit rule]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Remove&amp;diff=3844</id>
		<title>ReNamer:Rules:Remove</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Remove&amp;diff=3844"/>
		<updated>2025-04-17T10:30:35Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Remove rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Delete|next=ReNamer:Rules:Replace}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RemoveRule.png]] &lt;br /&gt;
&lt;br /&gt;
This rule removes the specified string from the file name. It has options to remove the first occurrence, the last occurrence, or all the occurrences of the specified string. You can enter multiple strings at a time (just separate them with &#039;&#039;&#039;*|*&#039;&#039;&#039;). If ReNamer finds any of them in the name, they will be removed. You can create a pattern with wildcards, so that any string that matches the pattern will be removed. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Remove &lt;br /&gt;
| Enter the string to be removed. &lt;br /&gt;
*You can enter multiple strings at a time. Press the + button to separate two strings &lt;br /&gt;
*If the name does not contain the specified string, the rule will not act on it. &lt;br /&gt;
*If the name contains more than one of these strings, it will remove all of them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TIP:&#039;&#039;&#039; Sometimes, the file names have a common string that needs to be removed. In such cases, rather than entering the whole string by hand, it is easier to borrow it from one of the file names. To do this, just click on a file name in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane of ReNamer &#039;&#039;BEFORE&#039;&#039; launching the &#039;&#039;&#039;Remove&#039;&#039;&#039; rule. ReNamer will automatically copy the entire name of the selected file into the Remove field. Now edit this entry to get the desired common string. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] button &lt;br /&gt;
| Inserts a separator (&#039;&#039;&#039;*{{Pipe}}*&#039;&#039;&#039;) sequence between two delimiter entries. (You can directly type *{{Pipe}}* instead of clicking on this button.)&lt;br /&gt;
|-&lt;br /&gt;
| Occurrences &lt;br /&gt;
| In case the strings occur multiple times in the name, specify which occurrences should be removed. (Options are: &#039;&#039;first only&#039;&#039;, &#039;&#039;last only&#039;&#039;, or &#039;&#039;all&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive &lt;br /&gt;
| Will only remove a specified string from the name if the case matches exactly.&lt;br /&gt;
|-&lt;br /&gt;
| Whole words only&lt;br /&gt;
| Remove the subject text only when it is whole word, not a part of another word.&lt;br /&gt;
&lt;br /&gt;
For example, searching for &amp;quot;bar&amp;quot; would not find a match in &amp;quot;foobar&amp;quot; or &amp;quot;bars&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Interpret symbols as wildcards &lt;br /&gt;
| Treat certain symbols as [[#Wildcards|Wildcards]] for matching simple patterns (similar to [[ReNamer:Regular Expressions|Regular Expressions]]). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wildcards ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wildcard&lt;br /&gt;
! Represents &lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any number of characters (including numbers, space, underscores, etc.). &lt;br /&gt;
| &#039;&#039;&#039;abc*&#039;&#039;&#039; equals &#039;&#039;&#039;abc&#039;&#039;&#039; followed by 0 or more characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;?&amp;lt;/center&amp;gt; &lt;br /&gt;
| Any single character (including numbers, space, underscores, etc.) &lt;br /&gt;
| &#039;&#039;&#039;ab?d&#039;&#039;&#039; equals &#039;&#039;&#039;abcd&#039;&#039;&#039;, &#039;&#039;&#039;ab1d&#039;&#039;&#039;, &#039;&#039;&#039;ab d&#039;&#039;&#039;, &#039;&#039;&#039;ab_d&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;nowiki&amp;gt;[]&amp;lt;/nowiki&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Brackets enclose a set of characters, any one of which may match a single character at that position. &lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foo[ab]ar &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039; and &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;-&amp;lt;/center&amp;gt; &lt;br /&gt;
| (only within a pair of brackets) denotes a range of characters. &lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foo[a-z]ar &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039;, &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foocar,&#039;&#039;&#039; &#039;&#039;&#039;foodar,&#039;&#039;&#039; etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3843</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3843"/>
		<updated>2025-04-17T10:30:25Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Delete rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
[[Image:DeleteRule.png]]&lt;br /&gt;
&lt;br /&gt;
This  rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the  &#039;&#039;&#039;Until &#039;&#039;&#039; positions. Optionally, it can delete from the specified  position till the end of the name. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*The starting position (count starts from 1) &lt;br /&gt;
*The delimiter from where the deletion starts.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*Count: Specify how many characters to be deleted, starting from the FROM position. &lt;br /&gt;
*Delete till a specified delimiter is reached. &lt;br /&gt;
**You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
*Delete all characters till the end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Delete current name&lt;br /&gt;
| A shortcut option for deleting the whole current name.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| Inverts the normal direction for counting a position, so that the count goes from right and towards left.&lt;br /&gt;
&lt;br /&gt;
When this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039; deletes all characters on the left, what we normally regard as the &#039;&#039;beginning&#039;&#039; of the name.&lt;br /&gt;
&lt;br /&gt;
For example, to keep only the four characters on the right side of the name and delete all the rest of the characters on the left, use:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;From:&#039;&#039;&#039; Position 5&lt;br /&gt;
* &#039;&#039;&#039;Until:&#039;&#039;&#039; Till the end&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| If you select this option, the delimiters themselves will be retained.&lt;br /&gt;
&lt;br /&gt;
If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3842</id>
		<title>ReNamer:Rules:Insert</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3842"/>
		<updated>2025-04-17T10:30:14Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Left align the rule image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Insert rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|next=ReNamer:Rules:Delete}}&lt;br /&gt;
&lt;br /&gt;
[[Image:InsertRule.png]] &lt;br /&gt;
&lt;br /&gt;
This rule inserts the specified string at the beginning of the name, or end of the name, or at any other specified position. It can also insert the string &#039;&#039;conditionally (&#039;&#039;only when the existing name contains a second specified string). &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Insert&lt;br /&gt;
| Enter the subject text that will be inserted.&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Where &lt;br /&gt;
| Where to insert the subject text. Select one of the [[#&amp;quot;Where&amp;quot; options|&amp;quot;Where&amp;quot; options]] described below.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Where&amp;quot; options ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Prefix &lt;br /&gt;
| Adds the string before the existing name.&lt;br /&gt;
|-&lt;br /&gt;
| Suffix &lt;br /&gt;
| Adds the string after the existing name. &lt;br /&gt;
*If the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is not checked, the specified text will be inserted &#039;&#039;after&#039;&#039; the extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position &lt;br /&gt;
| Insert at the specified position.&lt;br /&gt;
* The position index starts from 1.&lt;br /&gt;
* Count spaces and special characters also.&lt;br /&gt;
* You can count in the &#039;&#039;right-to-left&#039;&#039; direction&lt;br /&gt;
* You may use [[ReNamer:Analyze|Analyze]] window to check the position by pointing to the character with mouse or keyboard instead of counting it by yourself. Just [[ReNamer:Adding files and folders#Selecting files|select]] the file (or files) in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane and choose the &#039;&#039;&#039;Analyze name&#039;&#039;&#039; option from the context menu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| After text &lt;br /&gt;
| Insert the main subject text after the text entered in the &amp;quot;after text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;after text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Before text &lt;br /&gt;
| Insert the main subject text before the text entered in the &amp;quot;before text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;before text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| The current name is deleted prior to inserting the subject text.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Using_the_Rules&amp;diff=3841</id>
		<title>ReNamer:Using the Rules</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Using_the_Rules&amp;diff=3841"/>
		<updated>2025-04-17T10:28:11Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Using the Rules}}&lt;br /&gt;
{{Go|up=ReNamer|next=ReNamer:Rules}}&lt;br /&gt;
&lt;br /&gt;
You can load a stack of rules in ReNamer. These rules act on the loaded files in the &amp;quot;top-to-bottom&amp;quot; order.&lt;br /&gt;
This allows you to achieve very complex renaming algorithms. &lt;br /&gt;
&lt;br /&gt;
* A rule modifies the name and then passes it to the next rule, which acts on the &#039;&#039;&#039;modified&#039;&#039;&#039; name (not the original name).&lt;br /&gt;
* Any rule can be used multiple times, each time with different settings. &lt;br /&gt;
&lt;br /&gt;
All you have to do is to visualize how each rule in the stack affects the file name when the file name &amp;quot;passes through&amp;quot; the stack.&lt;br /&gt;
&lt;br /&gt;
The first subtopic provides an [[ReNamer:Rules|overview of Rules]].&lt;br /&gt;
&lt;br /&gt;
The subsequent subtopics show the specifics of each rule:&lt;br /&gt;
&lt;br /&gt;
* How each option works, and how to set it.&lt;br /&gt;
* Examples (typical uses).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you are going to use the same set of rules frequently, it is best to save it as a [[ReNamer:Using presets|Preset]]. This allows you to re-load the entire set with a keyboard shortcut (such as &#039;&#039;&#039;CTRL+1&#039;&#039;&#039;). A huge timesaver!&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules&amp;diff=3840</id>
		<title>ReNamer:Rules</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules&amp;diff=3840"/>
		<updated>2025-04-17T10:27:06Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Overview of Rules}}&lt;br /&gt;
{{Go|up=ReNamer}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has an extensive set of rules. These rules can be combined together, in a logical sequence, to perform nearly any thinkable operation with the filename. You can also [[ReNamer:Manual editing|manually edit]] the name of any file. &lt;br /&gt;
&lt;br /&gt;
The table below lists all rules, with a brief description of each rule. The subsequent chapters provide more details for each rule. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Rules &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
| Insert the specified text into the filename: as prefix, as suffix, at the specified position, before- or after the specified text. There is also an option to insert meta tags into the filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
| Delete a portion of the filename, usually defined by character positions: from the specified position, from the occurrence of the specified delimiter, until the specified number of characters, until occurrence of the specified delimiter or till the end. This rule can be set to process the filename in a right-to-left manner.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
| Remove the specified text from the filename: first, last or all occurrences. Optionally, wildcards can be used within this rule, to remove masked text fragments.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Replace|Replace]] &lt;br /&gt;
| This rule is very much like the &#039;&#039;&#039;Remove &#039;&#039;&#039;rule (above). It has similar options, except that instead of removing the text fragments, it will replace them with the specified text.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Rearrange|Rearrange]] &lt;br /&gt;
| Chop up the existing file name using any delimiter or position and reuse any/all of the parts in any order to compose a new name.Add your strings, or use the meta tags extracted from the file to compose the new name.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
| Change extension of files to the specified extension, or to the extension automatically detected through the internal database of binary signatures.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
| Strip all occurrences of the specified characters from the filename. This rule has predefined character sets, like digits, symbols, brackets, but you can also define your own character set.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Case|Case]] &lt;br /&gt;
| Change the case of the filename: capitalize each word, to lower case, to upper case, invert case, or capitalize only the first letter and force the rest to lowercase (as in a sentence). There is also an option to force case for the manually entered fragments, for example: CD, DVD, India, ReNamer, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
| Add incremental numbers to put filenames into an order.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Randomize|Randomize]]&lt;br /&gt;
| Add randomly generated sequences into filenames.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Padding|Padding]]&lt;br /&gt;
| Apply or remove zero padding to/from number sequences, or add text padding using custom characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:CleanUp|Clean Up]] &lt;br /&gt;
| Cleanup filenames from (or for) commonly used naming conventions for Internet, peer-to-peer networks, and other resources.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
| Transliterate Non-English characters from different languages into their English/Latin representation. Useful for preparing files for network storage and transfer. Several transliteration maps are built in, and you can define your own maps.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:RegEx|Regular Expressions]] &lt;br /&gt;
| &lt;br /&gt;
Regular Expressions (RegEx) are used for complex pattern/expression matching and replacing operations. Although it may look complex at first, you can learn it quite easily, using the guide provided in this manual! &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:PascalScript|Pascal Script]] &lt;br /&gt;
| Scripting allows programming-aware users to code their own renaming rule using predefined set of functions. This rule uses Pascal/Delphi programming syntax and conventions. Extremely powerful feature in the right hands.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:UserInput|User Input]] &lt;br /&gt;
| Rule that simply sets the new names of the files to the names entered in a list (one name per line).&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Rules:ReformatDate|Reformat Date]] &lt;br /&gt;
| Change format of date/time values in the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:ReformatDate&amp;diff=3839</id>
		<title>ReNamer:Rules:ReformatDate</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:ReformatDate&amp;diff=3839"/>
		<updated>2025-04-17T10:23:16Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Reformat Date rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:UserInput}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[File:ReformatDateRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule allows finding and reformatting various date/time values in the filename.&lt;br /&gt;
&lt;br /&gt;
Allowed date/time format variables are described in the [[ReNamer:Date and Time format|Date and Time format]] article.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Find date/time format&lt;br /&gt;
| Find date and/or time matching a specified format.&lt;br /&gt;
&lt;br /&gt;
A dropdown menu provides a quick access to commonly used formats.&lt;br /&gt;
|-&lt;br /&gt;
| Convert to date/time format&lt;br /&gt;
| Convert found date and/or time values to the specified format.&lt;br /&gt;
&lt;br /&gt;
A dropdown menu provides a quick access to commonly used formats.&lt;br /&gt;
|-&lt;br /&gt;
| Match as whole words only&lt;br /&gt;
| When searching for a matching date/time pattern, match only if the found pattern is a whole word, i.e. surrounded by word boundaries.&lt;br /&gt;
&lt;br /&gt;
For example: A 4 digit year pattern (YYYY) will be found in &amp;quot;&#039;&#039;foo&#039;&#039;&#039;&#039;&#039;1234&#039;&#039;&#039;&#039;&#039;bar&#039;&#039;&amp;quot; if this option is disabled, but not found if option is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension from processing.&lt;br /&gt;
|-&lt;br /&gt;
| Use custom short months&lt;br /&gt;
| Use a custom list of short month names when searching or formatting short month name pattern (MMM). Month names are separated by a comma.&lt;br /&gt;
&lt;br /&gt;
By default, month names from the system locale are used.&lt;br /&gt;
|-&lt;br /&gt;
| Use custom long months&lt;br /&gt;
| Use a custom list of long month names when searching or formatting long month name pattern (MMMM). Month names are separated by a comma.&lt;br /&gt;
&lt;br /&gt;
By default, month names from the system locale are used.&lt;br /&gt;
|-&lt;br /&gt;
| Adjust time by&lt;br /&gt;
| This option lets you adjust date/time by any arbitrary number of years, months, days, hours, minutes, seconds and milliseconds.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:UserInput&amp;diff=3838</id>
		<title>ReNamer:Rules:UserInput</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:UserInput&amp;diff=3838"/>
		<updated>2025-04-17T10:22:59Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › User Input rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:PascalScript|next=ReNamer:Rules:ReformatDate}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:UserInputRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule replaces the original filenames with the names taken from the list. (The &#039;&#039;n&#039;&#039;th line in the list serves as the new name for the &#039;&#039;n&#039;&#039;th file in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.) &lt;br /&gt;
&lt;br /&gt;
Naturally, the list should contain names for all the files loaded in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
*If the list is shorter, then some of the files will not be renamed. &lt;br /&gt;
*If the list is longer, some of the names will remain unused (but all files in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane will be renamed).&lt;br /&gt;
&lt;br /&gt;
There are three ways to create the list: &lt;br /&gt;
&lt;br /&gt;
#Click in the pane, and manually type the list (one name per line). &lt;br /&gt;
#Copy the list from any application to your clipboard. Switch to ReNamer. Click in the &#039;&#039;&#039;UserInput&#039;&#039;&#039; pane and press &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;, right-click and select &#039;&#039;&#039;Paste&#039;&#039;&#039; or choose the &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039; from [[Image:UserInputOptionsButton.png]] menu).&lt;br /&gt;
#Load a list from the text file (available from [[Image:UserInputOptionsButton.png]] menu).&lt;br /&gt;
&lt;br /&gt;
The optional parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Insert in front of the current name &lt;br /&gt;
| Inserts the name before the file name.&lt;br /&gt;
|-&lt;br /&gt;
| Insert after the current name &lt;br /&gt;
| Inserts the name &#039;&#039;after&#039;&#039; the current name. The actual position depends on the &#039;&#039;&#039;Skip extension&#039;&#039;&#039; option.&lt;br /&gt;
|-&lt;br /&gt;
| Replace the current name &lt;br /&gt;
| Replaces the existing filename with the new name. &lt;br /&gt;
The effect on extension depends on the &#039;&#039;&#039;&#039;&#039;Skip extension&#039;&#039;&#039;&#039;&#039; option: &lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
|&lt;br /&gt;
*If the option is selected, the extension is ignored and user input strings will affect only the base name of files.&lt;br /&gt;
*If the option is deselected, user input strings will replace entire filename, &#039;&#039;including&#039;&#039; the extension, or will be added &#039;&#039;after&#039;&#039; the old extension (if the &#039;&#039;&#039;Insert after the current name&#039;&#039;&#039; option is selected).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
&lt;br /&gt;
See the [[ReNamer:Export_menu|Export menu]] for options on export and import of files and their new names.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
For example, if you have this three files:&lt;br /&gt;
* Old name 1&lt;br /&gt;
* Old name 2&lt;br /&gt;
* Old name 3&lt;br /&gt;
&lt;br /&gt;
Then your list of new names should contain exactly three lines like:&lt;br /&gt;
* New name for old name 1&lt;br /&gt;
* new name for old name 2&lt;br /&gt;
* New name for old name 3&lt;br /&gt;
&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
&lt;br /&gt;
File list is longer then the list of new names:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Second.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| Four.txt&lt;br /&gt;
| &#039;&#039;(will not be renamed)&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
&lt;br /&gt;
List of new names is longer then the file list:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Second.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;(not used)&#039;&#039;&lt;br /&gt;
| Fourth.txt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example 3 ==== &lt;br /&gt;
&lt;br /&gt;
Missed item in the list of new names can cause incorrect ordering:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name&lt;br /&gt;
! List of new names&lt;br /&gt;
|-&lt;br /&gt;
| One.txt&lt;br /&gt;
| First.txt&lt;br /&gt;
|-&lt;br /&gt;
| Two.txt&lt;br /&gt;
| Third.txt&lt;br /&gt;
|-&lt;br /&gt;
| Three.txt&lt;br /&gt;
| Fourth.txt&lt;br /&gt;
|-&lt;br /&gt;
| Four.txt&lt;br /&gt;
| Fifth.txt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3837</id>
		<title>ReNamer:Rules:PascalScript</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3837"/>
		<updated>2025-04-17T10:22:33Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Pascal Script rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:RegEx|next=ReNamer:Rules:UserInput}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PascalScriptRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule uses [[ReNamer:Pascal Script|Pascal Script programming engine]] with syntax and conventions similar to Delphi/Pascal. ReNamer comes with some preloaded scripts. We will see how to use them, and how to add a new script. &lt;br /&gt;
&lt;br /&gt;
== Using a ready script ==&lt;br /&gt;
&lt;br /&gt;
# Click on the [[Image:ScriptsButton.png]] button (located just below the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane). &lt;br /&gt;
#: A list of scripts appears. &lt;br /&gt;
#: [[Image:PascalScriptsMenu.png]] &lt;br /&gt;
# All available scripts are listed &#039;&#039;above&#039;&#039; the line. Click on any script to load it into the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane. &lt;br /&gt;
# Edit the script if required &lt;br /&gt;
# Press [[Image:AddRuleButton.png]] button to add the script to the rule stack. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can &#039;&#039;drag and drop&#039;&#039; an existing file from your desktop of favourite explorer straight into the script window.&lt;br /&gt;
&lt;br /&gt;
Hold &amp;lt;tt&amp;gt;SHIFT&amp;lt;/tt&amp;gt; key when opening a new script to insert it into the current script at the cursor position, instead of completely replacing the current script. This can be useful when you store your commonly used functions in separate script files, and with this feature they can be easily merged into the current script.&lt;br /&gt;
&lt;br /&gt;
== Borrowing readymade scripts ==&lt;br /&gt;
&lt;br /&gt;
Even if you do not know how to write a script, you can easily use scripts written by others.&lt;br /&gt;
&lt;br /&gt;
There are two sources of such readymade scripts:&amp;lt;/br&amp;gt;&lt;br /&gt;
1. The [http://www.den4b.com/wiki/ReNamer:Scripts &#039;&#039;&#039;Scripts repository&#039;&#039;&#039;]&amp;lt;/br&amp;gt;&lt;br /&gt;
2. The [http://www.den4b.com/forum/ &#039;&#039;&#039;User Forum&#039;&#039;&#039;] &lt;br /&gt;
&lt;br /&gt;
Search for a suitable script. &lt;br /&gt;
&lt;br /&gt;
Some of these scripts have embedded comments about how to customize the script. If you cannot find a suitable script, you can request other users to write the script for you (or customize an existing script). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TIP:&#039;&#039;&#039; If you are looking for scripts only, try to use &#039;&#039;&#039;begin&#039;&#039;&#039; or &#039;&#039;&#039;end&#039;&#039;&#039; words in your search phrase as these are the words that are present in every single script.&lt;br /&gt;
&lt;br /&gt;
Once you find such a script, follow these simple steps: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| &#039;&#039;&#039;Copy the script&#039;&#039;&#039; &lt;br /&gt;
Copy the script from the forum (ensure that nothing is left out).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| &#039;&#039;&#039;Clear the ReNamer&#039;s Configuration pane&#039;&#039;&#039; &lt;br /&gt;
Open the &#039;&#039;&#039;Pascal Script&#039;&#039;&#039; Rule in ReNamer. Select the three lines you see in the &#039;&#039;&#039;Configuration&#039;&#039;&#039; pane, and press DEL or paste the script while these lines are selected. &lt;br /&gt;
*The three lines already provided in the window are meant to begin a script from scratch; but since you are pasting a ready-made script, they must be removed first, otherwise they will interfere with your script. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| &#039;&#039;&#039;Paste the script into ReNamer pane&#039;&#039;&#039; &lt;br /&gt;
Use the &#039;&#039;&#039;CTRL+V&#039;&#039;&#039; shortcut or right-click and select &#039;&#039;&#039;Paste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| &#039;&#039;&#039;Compile the script&#039;&#039;&#039; &lt;br /&gt;
Press the [[Image:TryToCompileButton.png]] button. &lt;br /&gt;
&lt;br /&gt;
*In case some error comes up, the error message will identify the line number of the faulty statement. &lt;br /&gt;
*:You can try and troubleshoot the problematic statement in the script using the [[Image:GotoButton.png]] button. &lt;br /&gt;
*:ReNamer opens a window like this: &lt;br /&gt;
*:&amp;lt;center&amp;gt;[[Image:GotoLineDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
*:Now enter the line number in the window and press &#039;&#039;&#039;OK&#039;&#039;&#039;. It takes you to the faulty statement.&lt;br /&gt;
*: Try to edit the statement and compile the script again.&lt;br /&gt;
*: (Note that if the script compiles successfully, the [[Image:GotoButton.png]] button is not required at all.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| &#039;&#039;&#039;Saving the script and giving it a name:&#039;&#039;&#039; &lt;br /&gt;
The &#039;&#039;&#039;save &#039;&#039;&#039;button is hidden under the &#039;&#039;&#039;scripts &#039;&#039;&#039;menu. So first click on the [[Image:ScriptsButton.png]] button. It pops up a window like this: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:PascalScriptsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Note that all the existing scripts are listed here. (When you save the new script, it will also be added to this list.) &lt;br /&gt;
&lt;br /&gt;
Select the &#039;&#039;&#039;Save script... &#039;&#039;&#039;option (at the very bottom of the menu). Another window pops up. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:SaveScriptDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Enter a name that suggests the function of your script. Press &#039;&#039;&#039;OK&#039;&#039;&#039;. The new name is added to the list of scripts. Now use it as described [[#Using_a_ready_script|above]]. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Writing your own scripts ==&lt;br /&gt;
&lt;br /&gt;
To write your own scripts, you must have knowledge of Pascal script. Learning Pascal script is easy. Refer to the [[ReNamer:Pascal Script|Pascal Script section]].&lt;br /&gt;
&lt;br /&gt;
Here, we will assume that you already know how to write pascal scripts. &lt;br /&gt;
&lt;br /&gt;
The step-by-step procedure is as follows: &lt;br /&gt;
&lt;br /&gt;
# Click in the Configuration pane and enter the script directly. (You can also copy it from anywhere and paste it into the pane by pressing &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;. Or right-click in the pane and select the &#039;&#039;&#039;Paste&#039;&#039;&#039; option from the context menu.) &lt;br /&gt;
# Compile the script by pressing the [[Image:TryToCompileButton.png]] button located below the Configuration pane. &lt;br /&gt;
#* If an error message comes up, troubleshoot the script. The fault message usually includes the line number of the problematic statement in the script. Press the [[Image:GotoButton.png]] button and enter that line number to locate the faulty statement quickly. Then correct the errors and press the [[Image:TryToCompileButton.png]] button again. Repeat this till a &#039;&#039;&#039;&#039;&#039;Compiled successfully!&#039;&#039;&#039;&#039;&#039; message pops up. &lt;br /&gt;
# Now you can add the script as a rule by pressing [[Image:AddRuleButton.png]] button or save it for later use.&lt;br /&gt;
# To save the script press the [[Image:ScriptsButton.png]] button. A list pops up: &lt;br /&gt;
#: &amp;lt;center&amp;gt;[[Image:PascalScriptsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
# Click on the &#039;&#039;&#039;Save Script...&#039;&#039;&#039;(the last option in the list). Now this script is added to the list (it appears above the line in the list). &lt;br /&gt;
#* Now you can use that script as described [[#Using a ready script|above]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:RegEx&amp;diff=3836</id>
		<title>ReNamer:Rules:RegEx</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:RegEx&amp;diff=3836"/>
		<updated>2025-04-17T10:22:10Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Regular Expressions rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Translit|next=ReNamer:Rules:PascalScript}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RegExRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule allows finding and replacing patterns defined as [[ReNamer:Regular Expressions|Regular Expressions]].&lt;br /&gt;
&lt;br /&gt;
Regular Expressions (RegEx) use a special syntax for describing search and replace patterns, they are very powerful and &#039;&#039;really&#039;&#039; worth learning.&lt;br /&gt;
&lt;br /&gt;
ReNamer users have posted many RegEx examples at the [http://www.den4b.com/forum/ User Forum], where you might find your particular case already solved.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The RegEx engine used in ReNamer is a little different from the mainstream [http://perldoc.perl.org/perlre.html PERL RegEx] or [http://msdn.microsoft.com/en-us/library/6wzad2b2(VS.85).aspx Windows RegEx]. You can check the syntax in the [[ReNamer:Regular Expressions|Regular Expressions]] article.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Expression &lt;br /&gt;
| RegEx pattern to match or find.&lt;br /&gt;
|-&lt;br /&gt;
| Replace &lt;br /&gt;
| RegEx pattern that replaces the found pattern.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Case-sensitive &lt;br /&gt;
| If this option is selected, ReNamer will search for the text in &#039;&#039;case-sensitive&#039;&#039; manner.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A simple set of commonly used RegEx syntax patterns is provided in the hint menu:&lt;br /&gt;
&lt;br /&gt;
[[File:RegExRuleSyntaxHint.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Translit&amp;diff=3835</id>
		<title>ReNamer:Rules:Translit</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Translit&amp;diff=3835"/>
		<updated>2025-04-17T10:21:39Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Translit rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:CleanUp|next=ReNamer:Rules:RegEx}}&lt;br /&gt;
&lt;br /&gt;
[[Image:TranslitRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule transliterates one alphabet into another. Its main goal is to transliterate Non-English characters from different languages into their English/Latin representation. For example, the German character &#039;&#039;&#039;ü&#039;&#039;&#039; can be transliterated to &#039;&#039;&#039;ue&#039;&#039;&#039; (the name &#039;&#039;&#039;Müller &#039;&#039;&#039;can be also written as &#039;&#039;&#039;Mueller&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
This rule uses &#039;&#039;transliteration maps&#039;&#039; (explained below). &lt;br /&gt;
&lt;br /&gt;
== Transliteration maps ==&lt;br /&gt;
&lt;br /&gt;
To transliterate, we create a pair of equivalent characters, like this: &#039;&#039;&#039;ü=ue&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
(Note that the right side of this equation has &#039;&#039;two&#039;&#039; characters. Any number of characters may be placed on both sides of the equation.) &lt;br /&gt;
&lt;br /&gt;
We need several such &#039;&#039;equivalent character pairs&#039;&#039; to convert one language into another. The entire set is called a &#039;&#039;transliteration map&#039;&#039;. (This is really some kind of a find-and-replace rule.) &lt;br /&gt;
&lt;br /&gt;
ReNamer has several such built-in maps. Each map is named after a language (the second language in all maps is English). &lt;br /&gt;
&lt;br /&gt;
Each map can be used in &#039;&#039;both&#039;&#039; directions (e.g. French-to-English or English-to-French.) &lt;br /&gt;
&lt;br /&gt;
When you start up the &#039;&#039;&#039;Translit&#039;&#039;&#039; Rule, its window does not show any maps. You are free to do any of the following: &lt;br /&gt;
&lt;br /&gt;
#Use any of the built-in maps (and use it in &#039;&#039;forward&#039;&#039; or &#039;&#039;reverse&#039;&#039; direction) &lt;br /&gt;
#Create your own map and use it. &lt;br /&gt;
#Edit a built-in map first, and then use it.&lt;br /&gt;
&lt;br /&gt;
Let us see how to do this. &lt;br /&gt;
&lt;br /&gt;
== Automatic case conversion ==&lt;br /&gt;
&lt;br /&gt;
Translit rule does automatic case conversion with an algorithm adopted specifically for transliteration. Translit rule discard the case on the input, i.e. &amp;quot;A=B&amp;quot; is same as &amp;quot;a=b&amp;quot;. Case is decided upon case of the input fragment. Multiple character fragments are treated as part of words, with their case decided based on the case of letters around them.&lt;br /&gt;
&lt;br /&gt;
The logic for the case conversion is as follows (ReNamer Beta from 23 Aug 2009):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set OUTPUT-PART to lower case&lt;br /&gt;
if first letter in INPUT-PART is upper case then&lt;br /&gt;
  if length of OUTPUT-PART bigger than 1 then&lt;br /&gt;
    if next letter in original name is upper case then&lt;br /&gt;
      convert whole OUTPUT-PART to upper case&lt;br /&gt;
    else&lt;br /&gt;
      convert only first letter in OUTPUT-PART to upper case&lt;br /&gt;
  else&lt;br /&gt;
    convert whole OUTPUT-PART to upper case&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using a built-in transliteration map ==&lt;br /&gt;
&lt;br /&gt;
To select any of the built-in maps, press the [[Image:TranslitMapsButton.png]] button. A list of available transliteration maps pops up: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:TranslitMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Click on the desired transliteration map. As an example, let us click on the French (to English) transliteration map. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Rules&#039;&#039;&#039; window changes immediately to show the French characters and their English equivalents. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:TranslitRuleExample.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
You can edit any of the entry in this list, add new entries, or delete any of the entries. &lt;br /&gt;
&lt;br /&gt;
Note that such editing does not alter the saved version of the map. The map is edited just for a one-time use. If you select the same Translit map again, ReNamer will load the &#039;&#039;original&#039;&#039; version, not the &#039;&#039;edited&#039;&#039; version. You will see how to [[#Saving_a_transliteration_map|alter a transliteration map]] in a section below. &lt;br /&gt;
&lt;br /&gt;
Next, select the rule&#039;s parameters as shown below: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| forward &lt;br /&gt;
| This is transliteration from-left-to-right direction, as defined in the map.&lt;br /&gt;
|-&lt;br /&gt;
| backward &lt;br /&gt;
| This is transliteration from-right-to-left direction, as defined in the map.&lt;br /&gt;
|-&lt;br /&gt;
| skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Finally, press the [[Image:AddRuleButton.png]] button to add the rule to the stack.&lt;br /&gt;
&lt;br /&gt;
== Making your own transliteration map ==&lt;br /&gt;
&lt;br /&gt;
Click in the &#039;&#039;&#039;Translit Alphabet&#039;&#039;&#039; window, and start entering your custom alphabet.&lt;br /&gt;
&lt;br /&gt;
Transliteration alphabet consists of two equivalence parts (or a couple), which are entered one per line and two parts separated with &amp;quot;=&amp;quot; (equal sign). Alphabet should not contain spaces and should have case discarded ([[ReNamer:Rules:Translit#Automatic_case_conversion|case is adjusted automatically]]). Also, make sure to put couples which contain greater number of characters at the top, so they will get processed first and will not get processed partially by shorter representations. Below is a simple example:&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
щ=sh&lt;br /&gt;
ю=yu&lt;br /&gt;
я=ya&lt;br /&gt;
ь=&#039;&lt;br /&gt;
э=e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After entering all such transliterations, press the [[Image:AddRuleButton.png]] button to add the rule to the rule-stack. &lt;br /&gt;
&lt;br /&gt;
Note that this rule is not saved yet (it was just composed for a one-time use). The following topic shows how to save a map.&lt;br /&gt;
&lt;br /&gt;
== Saving a transliteration map ==&lt;br /&gt;
&lt;br /&gt;
To save a newly composed Transliteration rule, &lt;br /&gt;
&lt;br /&gt;
#Press the [[Image:TranslitMapsButton.png]] button. &lt;br /&gt;
#:A menu pops up. &lt;br /&gt;
#:&amp;lt;center&amp;gt;[[Image:TranslitMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
#Select the last option (&#039;&#039;&#039;Save Translit...&#039;&#039;&#039;). &lt;br /&gt;
#:A window pops up, as shown below: &lt;br /&gt;
#:&amp;lt;center&amp;gt;[[Image:SaveTranslitMapDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
#Enter a new name for the map and press &#039;&#039;&#039;OK&#039;&#039;&#039;. The new map is saved.&lt;br /&gt;
&lt;br /&gt;
The process of saving an edited Transliteration map is similar. The only difference is that the &#039;&#039;&#039;Save Translit &#039;&#039;&#039;window (see above) shows the current map&#039;s name. You can press &#039;&#039;&#039;OK&#039;&#039;&#039; to save the changes you&#039;ve just made, or enter a new name to create a new translit map for the edited version of the current map. &lt;br /&gt;
&lt;br /&gt;
The new map&#039;s name is added to the map list. &lt;br /&gt;
&lt;br /&gt;
From now on, the new map will also be available as &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Unicode character forms ==&lt;br /&gt;
&lt;br /&gt;
Have you encounter a case where some characters don&#039;t get converted, despite having a visually identical character defined in the Translit alphabet?&lt;br /&gt;
&lt;br /&gt;
Unicode characters can be defined using exact character codes or using [https://en.wikipedia.org/wiki/Combining_character combining characters]. The displayed characters will look identical, but their binary content is completely different. The conversion process between these forms is covered by the [https://unicode.org/reports/tr15/ Unicode Normalization] standard.&lt;br /&gt;
&lt;br /&gt;
Alphabets in the Translit rule are normally defined using exact character codes, so the combining characters won&#039;t get affected. You can put a piece of text through a &#039;&#039;Unicode analyzer&#039;&#039; to see exactly how each character is defined and to identify the use of combining characters.&lt;br /&gt;
&lt;br /&gt;
To handle all possible forms of the same visual character in Translit alphabets, one could define all possible forms in an alphabet or one can simply strip away those combining characters, which can be accomplished by using the &amp;quot;Strip unicode marks&amp;quot; option found in the [[ReNamer:Rules:CleanUp|Clean Up rule]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:CleanUp&amp;diff=3834</id>
		<title>ReNamer:Rules:CleanUp</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:CleanUp&amp;diff=3834"/>
		<updated>2025-04-17T10:21:20Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Clean Up rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Padding|next=ReNamer:Rules:Translit}}&lt;br /&gt;
&lt;br /&gt;
[[Image:CleanUpRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule cleans up the filenames from (or for) commonly used naming conventions for Internet, peer-to-peer networks and other resources. Multiple problems can be removed at once. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Details&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Strip out content of brackets &lt;br /&gt;
| A typical use of this option is to strip the needless comments attached to filenames, such as &#039;&#039;&#039;(best!!)&#039;&#039;&#039;. &lt;br /&gt;
*This option removes the brackets also. &lt;br /&gt;
*You can select any/all of the various types of brackets.&lt;br /&gt;
&lt;br /&gt;
If you do NOT want to delete the content within the brackets, use the [[ReNamer:Rules:Strip|Strip]] rule instead.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace these characters with spaces &lt;br /&gt;
| These characters occurring in the file names are removed and a space is inserted in their place.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Fix spaces&lt;br /&gt;
| Replace multiple consecutive spaces with a single space.&lt;br /&gt;
It also removes spaces from the beginning and the end of the filename:&lt;br /&gt;
*If &#039;&#039;&#039;skip extension&#039;&#039;&#039; is selected it removes spaces from the beginning and end of the &#039;&#039;base name&#039;&#039; (&#039;&#039;before&#039;&#039; the extension).&lt;br /&gt;
*If &#039;&#039;&#039;skip extension&#039;&#039;&#039; is deselected it removes spaces from the beginning and from the end of the &#039;&#039;filename&#039;&#039; (&#039;&#039;after&#039;&#039; the extension).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Normalize unicode spaces&lt;br /&gt;
| Replace all Unicode white space characters with a standard space bar character code. [[Unicode]] character set contains a number of different characters (&amp;lt;tt&amp;gt;C1_SPACE&amp;lt;/tt&amp;gt; type) that represent a white space with slightly different properties (e.g. wider, narrower, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Strip unicode marks&lt;br /&gt;
| Strip unicode marks, including combining marks, diacritics and accents. &lt;br /&gt;
&lt;br /&gt;
For example, it will convert &amp;quot;á&amp;quot; to &amp;quot;a&amp;quot;, &amp;quot;Ñ&amp;quot; to &amp;quot;N&amp;quot;, &amp;quot;X̅&amp;quot; to &amp;quot;X&amp;quot;, and so on.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert a space in front of capitalized letters&lt;br /&gt;
| Often words in the file name are just joined together, without spaces or underscores to separate them. Each word begins with a capital letter, so that you can read it easily.&lt;br /&gt;
&lt;br /&gt;
This option separates such words in the file name.&lt;br /&gt;
:For example, &#039;&#039;&#039;SeparateTheseWords.pdf&#039;&#039;&#039; becomes &#039;&#039;&#039;Separate These Words.pdf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
(Note that if there is a capitalized letter at the very beginning of the name, ReNamer does NOT add a space before it.) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prepare for SharePoint &lt;br /&gt;
| Prepares the file for hosting it on [http://www.microsoft.com/sharepoint/prodinfo/what.mspx Microsoft Sharepoint]. &lt;br /&gt;
#strips standard forbidden filename characters &lt;br /&gt;
#strips consecutive dots &lt;br /&gt;
#strips &#039;&#039;&#039;#&#039;&#039;&#039;, &#039;&#039;&#039;%&#039;&#039;&#039;, &#039;&#039;&#039;~&#039;&#039;&#039;, &#039;&#039;&#039;&amp;amp;amp;&#039;&#039;&#039; &lt;br /&gt;
#replaces &#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039; with &#039;&#039;&#039;(&#039;&#039;&#039; and &#039;&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Padding&amp;diff=3833</id>
		<title>ReNamer:Rules:Padding</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Padding&amp;diff=3833"/>
		<updated>2025-04-17T10:21:02Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Padding rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Randomize|next=ReNamer:Rules:CleanUp}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PaddingRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule allows you to apply or remove zero padding to/from number sequences, or add text padding using custom characters.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;number sequences&amp;quot; parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add zero padding to length&lt;br /&gt;
| Apply zero padding to number sequences until the number of digits reaches a specified count (length).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Remove zero padding&lt;br /&gt;
| Strip away leading zeros from all number sequences.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;text padding&amp;quot; parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add padding to length&lt;br /&gt;
| Add custom text padding either form the left or the right side of the subject.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Padding characters&lt;br /&gt;
| A sequence of custom characters which will be used as the padding material.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Choose either the left or the right side for adding the text padding.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
General parameters: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Randomize&amp;diff=3832</id>
		<title>ReNamer:Rules:Randomize</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Randomize&amp;diff=3832"/>
		<updated>2025-04-17T10:20:42Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Randomize rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Serialize|next=ReNamer:Rules:Padding}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RandomizeRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule inserts randomly generated sequences of specified length and using a selection characters (digits, letters, or a custom set).&lt;br /&gt;
&lt;br /&gt;
Several common practical uses:&lt;br /&gt;
# Randomize the order files.&lt;br /&gt;
# Destroy existing filenames.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Length of random sequence&lt;br /&gt;
| Specify how many characters your random sequence should have. &lt;br /&gt;
&lt;br /&gt;
For example, if you are using only digits and set length to 4, you will will get random numbers from 0000 to 9999 (inclusive).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Unique if possible&lt;br /&gt;
| Normally, randomly generated values can repeat themselves. If this option is selected, ReNamer will generate unique values (no repetition) when possible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Characters to use&lt;br /&gt;
| The set of characters which will be used for generating random sequences.&lt;br /&gt;
&lt;br /&gt;
You can choose between using digits (0..9), English letters (a..z) or specify your custom set of characters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert where&lt;br /&gt;
| Specify where to insert the number (see below for individual options). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options for where to insert the number:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prefix&lt;br /&gt;
| Before the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Suffix&lt;br /&gt;
| After the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Insert the number at the specified position.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| Inserted number replaces the entire filename.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension when calculating the position for insertion.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Serialize&amp;diff=3831</id>
		<title>ReNamer:Rules:Serialize</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Serialize&amp;diff=3831"/>
		<updated>2025-04-17T10:17:53Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Serialize rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Case|next=ReNamer:Rules:Randomize}}&lt;br /&gt;
&lt;br /&gt;
[[Image:SerializeRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule works on a set of files, and inserts incremental numeric series of digits in the names of those filenames.&lt;br /&gt;
&lt;br /&gt;
The files listed in the pane can be numbered in increasing or decreasing order, with various steps, repeat and reset configuration. The position of each file in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane becomes important, so check the order of the files in the list before applying this rule.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
# You have a bunch of log files, and you want to make them look like &amp;quot;log0001&amp;quot;, &amp;quot;log0002&amp;quot;, &amp;quot;log0003&amp;quot;, etc.&lt;br /&gt;
# You want to force specific sorting for files: &amp;quot;01 - Song XYZ&amp;quot;, &amp;quot;02 - Song ABC&amp;quot;, &amp;quot;03 - Song YYY&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Index start&lt;br /&gt;
| Starting number. For example, if the destination folder already has some files with serialized numbers, you can start with the next number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Step&lt;br /&gt;
| Increment the index by this value after each processed file. Usually 1, but you may like to enter a higher number here if files with intermediate numbers are expected later. Also, negative numbers can be used to make decremental indexes, e.g. -1, -2, -3, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Repeat&lt;br /&gt;
| How many times to repeat (reuse) the same index before incrementing it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset every&lt;br /&gt;
| Reset index to the initial value after processing this many files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset if folder changes&lt;br /&gt;
| Since ReNamer can work on files collected from multiple folders, this control allows you to reset the counter for each of those folders. The effect is as if you are repeating the same command for each of the folders separately.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Reset if file name changes&lt;br /&gt;
| Reset the counter when the file name changes. This option is especially useful for fixing (serializing) duplicated file names, when the files with the same name are grouped together, which can be achieved by sorting the files by name or path.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Pad with zeros to length&lt;br /&gt;
| Pad the inserted number with leading zeros. For example, &amp;quot;457&amp;quot; becomes &amp;quot;000457&amp;quot; if it is padded to reach 6 digits, and &amp;quot;0457&amp;quot; if padded to 4 digits.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert where&lt;br /&gt;
| Specify where to insert the number (see below for individual options).&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Insert location ===&lt;br /&gt;
&lt;br /&gt;
Options for where to insert the number:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Prefix&lt;br /&gt;
| Before the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Suffix&lt;br /&gt;
| After the original filename&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Insert the number at the specified position.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| Inserted number replaces the entire filename.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| Exclude file extension when calculating the position for insertion.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numbering system ===&lt;br /&gt;
&lt;br /&gt;
A choice of the &#039;&#039;&#039;Numbering system&#039;&#039;&#039; dictates which symbols and enumeration technique are used for the serialization.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Number system&lt;br /&gt;
! Description / Examples&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Decimal digits&lt;br /&gt;
| Index starts at 0 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| English letters&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;a, b, c, …, x, y, z, ba, bb, bc, …, bx, by, bz, ca, cb, cc, …, zx, zy, zz, baa, bab, bac, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 1 with repeat 1 and step 1, pad to length 3:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;aaa, aab, aac, …, aax, aay, aaz, aba, abb, abc, …, abx, aby, abz, aca, acb, acc, …, azx, azy, azz, baa, bab, bac, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Roman numerals&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;I, II, III, IV, V, VI, VII, VIII, IX, X, XI, XII, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Music notes&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;C0, C#0, D0, D#0, E0, F0, F#0, G0, G#0, A0, A#0, B0, C1, C#1, …&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Added in ReNamer 7.3.0.2 Beta.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Simplified Chinese&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;一, 二, 三, 四, 五, 六, 七, 八, 九, 一十, 一十一, 一十二, 一十三, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Custom alphabetic&lt;br /&gt;
| Index starts at 1 with repeat 1 and step 1, using &amp;quot;ABC&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;A, B, C, BA, BB, BC, CA, CB, CC, BAA, BAB, BAC, BBA, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 1 with repeat 1 and step 1, using &amp;quot;01&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Custom numeric&lt;br /&gt;
| Index starts at 0 with repeat 1 and step 1, using &amp;quot;ABC&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;A, B, C, BA, BB, BC, CA, CB, CC, BAA, BAB, BAC, BBA, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Index starts at 0 with repeat 1 and step 1, using &amp;quot;01&amp;quot; symbols:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, …&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=3830</id>
		<title>ReNamer:Rules:Case</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=3830"/>
		<updated>2025-04-17T10:17:37Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Case rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Strip|next=ReNamer:Rules:Serialize}}&lt;br /&gt;
&lt;br /&gt;
[[Image:CaseRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule changes the case of the filename. Options are: capitalize, to lower case, to upper case, invert case, and put only first letter capital (as in a sentence). &lt;br /&gt;
&lt;br /&gt;
There is also an option to force case for specific text-fragments, such as CD, DVD, RF, etc. These fragments would not look natural in any other case (e.g. cd, dvd, rf), so the rule allows you to prevent changing the case of such terms in one stroke. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Case change &lt;br /&gt;
| Several options are offered. &lt;br /&gt;
*The case of each option itself illustrates how that option works. For example, &#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039; will first make all letters lowercase and then convert the first letter of each word into UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; will convert the first letter of each word into UPPERCASE; but will not affect the rest of the letters.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;all lower case&#039;&#039;&#039; will convert all letters to lowercase.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;ALL UPPERCASE&#039;&#039;&#039; will convert all letters to UPPERCASE. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iNVERT cASE&#039;&#039;&#039; will change all capital letters to lowercase, and all lowercased letters to UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;First letter capital&#039;&#039;&#039; will change only the first letter to UPPERCASE, and rest of the letters to lowercase. (Compare this with the &#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; option above.)&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;(none of the above)&#039;&#039;&#039; option is provided to disable the case conversions listed above it, so you could independently use the options listed on the right side of the window. This allows you to convert the case of extension, or case-convert specific text fragments (see below).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Force case for fragments &lt;br /&gt;
| &lt;br /&gt;
This option forces the case of specified text-fragments (strings) in the file name. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: This check box is coupled with the box below it. (Enter the fragments in the box and then activate the option by selecting the check box.) &lt;br /&gt;
&lt;br /&gt;
*You can set any case for the strings (ALLCAPS, Only first letter capitalized, lowercase, MixedCase, etc.)&lt;br /&gt;
&lt;br /&gt;
*You can specify &#039;&#039;multiple&#039;&#039; strings at a time, each with its own case format. To separate the strings from each other, put a comma between them.&amp;lt;br&amp;gt;(Note: In versions prior to v5.50, a space was used instead of a comma.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The case for these strings will be set exactly as entered in the box, regardless of the options selected in &#039;&#039;&#039;Case change&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always upper case &lt;br /&gt;
| Forces the extension to uppercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;all lowercase&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into lowercase too. But if the &#039;&#039;&#039;Extension always upper case &#039;&#039;&#039;option is selected, the case of the extension will be converted to uppercase. This setting will override even the fragments case-conversion.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always lower case &lt;br /&gt;
| Forces the extension to lowercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;ALL UPPER CASE&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into ALLCAPS. But if the &#039;&#039;&#039;Extension always lower case&#039;&#039;&#039; option is selected, the case of the extension will be converted to lowercase. This setting will override even the fragments case-conversion. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples of Force case option ===&lt;br /&gt;
&lt;br /&gt;
You may want to use a very specific case format for certain text fragments, irregardless of other case options.&lt;br /&gt;
&lt;br /&gt;
Here are some typical examples where &amp;quot;Force case&amp;quot; option may be useful: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Desired case format&lt;br /&gt;
! Examples&lt;br /&gt;
|-&lt;br /&gt;
| ALLCAPS&lt;br /&gt;
| CD, DVD, TV, HTML, XML, C++, USA, GIMP&lt;br /&gt;
|-&lt;br /&gt;
| Only the First letter capitalized&lt;br /&gt;
| Java, India, English, Sunday, Easter, February&lt;br /&gt;
|-&lt;br /&gt;
| Mixed case&lt;br /&gt;
| OpenSUSE, OpenOffice, ReNamer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3829</id>
		<title>ReNamer:Rules:Strip</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Strip&amp;diff=3829"/>
		<updated>2025-04-17T10:17:08Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Strip rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Extension|next=ReNamer:Rules:Case}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:StripRule.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Strip characters from the filename. The rule has predefined character sets, like digits, symbols and brackets, but you can also define your own character set. All occurrences of the specified characters will be removed from the filename. &lt;br /&gt;
&lt;br /&gt;
Character set parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| English&lt;br /&gt;
| &lt;br /&gt;
Strip all English characters.&lt;br /&gt;
&lt;br /&gt;
* Numbers (0-9) will not be stripped.&lt;br /&gt;
* Non-English characters will not be stripped, e.g. characters with [http://en.wikipedia.org/wiki/Diacritic diacritical mark], which are used in many languages in Europe and Asia)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Digits &lt;br /&gt;
| Strip digits.&lt;br /&gt;
|-&lt;br /&gt;
| Symbols &lt;br /&gt;
| Strip symbols.&lt;br /&gt;
&lt;br /&gt;
* All characters that are considered to be symbols are showed in the box on the right.&lt;br /&gt;
|-&lt;br /&gt;
| Brackets &lt;br /&gt;
| Strip brackets.&lt;br /&gt;
&lt;br /&gt;
* The content between the brackets will remain unaffected.&lt;br /&gt;
* If you want to delete the content as well, use the [[ReNamer:Rules:CleanUp|CleanUp]] rule instead.&lt;br /&gt;
|-&lt;br /&gt;
| User-defined &lt;br /&gt;
| Define any character that needs to be stripped off. &lt;br /&gt;
* Note that this is not a string. All characters in the text box will removed individually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Positioning parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Everywhere&lt;br /&gt;
| The characters will be stripped no matter where they occur in the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Leading&lt;br /&gt;
| Strip characters only at the beginning of the filename.&lt;br /&gt;
|-&lt;br /&gt;
| Trailing&lt;br /&gt;
| Strip characters only at the end of the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Miscellaneous parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Strip all characters except selected&lt;br /&gt;
| &lt;br /&gt;
Retains the selected characters only, and strips the rest. &lt;br /&gt;
&lt;br /&gt;
* This option is very useful to strip all non-English characters: Select this option along with the &#039;&#039;&#039;English&#039;&#039;&#039; option above.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive&lt;br /&gt;
| Strip characters in a case sensitive manner.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=3828</id>
		<title>ReNamer:Rules:Extension</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=3828"/>
		<updated>2025-04-17T10:06:36Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Extension rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Rearrange|next=ReNamer:Rules:Strip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ExtensionsRule.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This rule allows you to attach a new extension. It is useful when the extension of a file is missing (or if the file has a wrong extension). There is an option to find the correct extension based on the file&#039;s structure. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| New extension &lt;br /&gt;
| New extension that has to be added to the filename. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Append to the original filename &lt;br /&gt;
| If this option is selected, the new extension will be placed after the old extension. &lt;br /&gt;
If it is deselected (default option) the new extension will replace the old one.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Detect using binary signature &lt;br /&gt;
| Try to detect a correct file extension using built-in [[#Binary signatures|Binary signatures]] of commonly used files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Binary signatures ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the extension of a file is missing. At other times it is simply wrong, e.g. some downloaded files get the &#039;&#039;&#039;aspx&#039;&#039;&#039; extension, although they may &#039;&#039;actually&#039;&#039; be &#039;&#039;&#039;zip &#039;&#039;&#039;or &#039;&#039;&#039;pdf&#039;&#039;&#039; files. One way to identify the file extension is by trial-and-error: Attach different extensions and try to open the file with its associated application. This is very tedious. &lt;br /&gt;
&lt;br /&gt;
A far more efficient way is to compare the file&#039;s &#039;&#039;digital signature&#039;&#039; with the signatures of known file types and identify the file&#039;s type. This is done internally within ReNamer, so you do not have to know what a &#039;&#039;digital signature&#039;&#039; means, or the actual value of the signature for the given file. &lt;br /&gt;
&lt;br /&gt;
Note that each extension has a range of signatures, and these ranges overlap. This means a given file&#039;s signature may match with the signature of several different extensions. In such cases, ReNamer shows the New filename with all matching extensions. For example, &amp;quot;&amp;lt;tt&amp;gt;fileName.wma|wmv|asf&amp;lt;/tt&amp;gt;&amp;quot;. ReNamer also pops up an error window (because the combined extension is invalid). Just read the suggested extensions and then try them out one by one. This method is still better compared to making wild guesses, because ReNamer suggests only 2-3 extensions.&lt;br /&gt;
&lt;br /&gt;
For more accurate results, use [[ReNamer:Scripts:TrID|ReNamer with TrID library]], a specialized utility for identifying the file&#039;s real extension. Be aware that even TrID often suggests multiple extensions, and you may still have to try them out.&lt;br /&gt;
&lt;br /&gt;
=== Filename starts with a dot ===&lt;br /&gt;
&lt;br /&gt;
Many operating systems treat the dot at the start of the filename as an indicator that the file should be hidden. For that reason, the dot at the start of the filename is not considered as a file extension delimiter.&lt;br /&gt;
&lt;br /&gt;
This behavior can be toggled via an option in the settings file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;FirstDotAtFileNameStartIsExtension=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The settings file is normally located in the [[Application Data Storage]].&lt;br /&gt;
&lt;br /&gt;
Examples of filenames and their considered extension depending on the value of the option:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Filename&lt;br /&gt;
! Extension if 1&lt;br /&gt;
! Extension if 0&lt;br /&gt;
|-&lt;br /&gt;
| file.ext&lt;br /&gt;
| .ext&lt;br /&gt;
| .ext&lt;br /&gt;
|-&lt;br /&gt;
| .file.ext&lt;br /&gt;
| .ext&lt;br /&gt;
| .ext&lt;br /&gt;
|-&lt;br /&gt;
| .file&lt;br /&gt;
| .file&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3827</id>
		<title>ReNamer:Rules:Rearrange</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3827"/>
		<updated>2025-04-17T10:06:18Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Rearrange rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Replace|next=ReNamer:Rules:Extension}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RearrangeRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule allows you to chop up the existing file name and reuse any/all of the parts in any order to compose a new name. &lt;br /&gt;
&lt;br /&gt;
*You can also add your own text, or use meta tags while composing the new name. &lt;br /&gt;
*You can also use the whole original name, and insert literal text (or meta tags) around it.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Split using &lt;br /&gt;
| &lt;br /&gt;
Specifies how to split the existing name into parts. &lt;br /&gt;
&lt;br /&gt;
*You can use only one of the three options at a time (you cannot combine the chopping methods)&lt;br /&gt;
&lt;br /&gt;
For detailed explanation of split methods please look below at the [[#Split options explained|split options explained]] section.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] &lt;br /&gt;
| Add a separator for additional delimiters. The separator is a &amp;quot;{{Pipe}}&amp;quot; (vertical pipe) character, which can also be entered manually.&lt;br /&gt;
|-&lt;br /&gt;
| New pattern &lt;br /&gt;
| &lt;br /&gt;
How to compose the new name from the parts created from the original name (see above). &lt;br /&gt;
&lt;br /&gt;
*You can add meta tags and literal text wherever you want. &lt;br /&gt;
*$0 refers to the whole original name. This allows you to quickly compose a new name by inserting a string at the beginning and/or end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]]. Select any meta tag to insert it in the new name template.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| &lt;br /&gt;
If selected, the numbering starts from right. &lt;br /&gt;
&lt;br /&gt;
*The characters of the original names are counted from right (the count begins with 1) &lt;br /&gt;
*The chopped parts will also be numbered from right ($1, $2, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Split options explained ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name where the delimiter occurs. &lt;br /&gt;
&lt;br /&gt;
*The delimiter can be a single character or a string. &lt;br /&gt;
*The chopped parts do &amp;lt;u&amp;gt;&#039;&#039;not&#039;&#039;&amp;lt;/u&amp;gt; contain the delimiters (they are omitted totally) &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*Several delimiters can be used at a time. Use the {{pipe}} character to separate them. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
*If the delimiter occurs at the very beginning of the name, the resultant $1 contains nothing (because there is nothing on the left side of the delimiter).&lt;br /&gt;
:The same is true if an delimiter match at the very end of the name, the resultant $n contains nothing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The number of parts into which the filename is broken down depends solely on the number of delimiters in the filename. If you reference fewer parts in the output pattern that the number of available parts - not referenced parts will be lost! For example, take filename &amp;quot;Artist - Title&amp;quot; and to swap them around one would use &amp;quot; - &amp;quot; as a delimiter and &amp;quot;$2 - $1&amp;quot; as a new pattern which will result in &amp;quot;Title - Artist&amp;quot;, but if some filename appears with more dashes like &amp;quot;Artist - Title - Album&amp;quot; the result will also be &amp;quot;Title - Artist&amp;quot; and last part will be lost. To make sure that no parts are lost use &#039;&#039;&#039;Exact pattern of delimiters&#039;&#039;&#039; option instead. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Positions &lt;br /&gt;
| &lt;br /&gt;
Chop the name at the indicated position (the position count begins with 1). &lt;br /&gt;
&lt;br /&gt;
*If you enter position &#039;&#039;&#039;n&#039;&#039;&#039;, ReNamer will chop the &#039;&#039;&#039;n&#039;&#039;&#039;-th character and all characters beyond that in a separate piece. &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*No part of the original name is omitted during chopping. &lt;br /&gt;
*You can enter multiple positions. Separate them with the &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039; sequence. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Exact pattern of delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name using the exact pattern (sequence) of the delimiters. &lt;br /&gt;
&lt;br /&gt;
With this option you basically define how many parts you want the filename to be split into and the order in which the delimiters must occur. If you specify 1 delimiter then you end up with exactly 2 parts, if you specify 2 delimiters you&#039;ll get 3 parts, and so on. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
This rule is so versatile that it can be used in a huge number of ways.&lt;br /&gt;
Therefore its examples have been moved to a separate article [[ReNamer:Rules:Rearrange Examples|Rearrange Examples]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Replace&amp;diff=3826</id>
		<title>ReNamer:Rules:Replace</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Replace&amp;diff=3826"/>
		<updated>2025-04-17T10:05:32Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Replace rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Remove|next=ReNamer:Rules:Rearrange}}&lt;br /&gt;
&lt;br /&gt;
[[Image:ReplaceRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule removes the specified string from the name and replaces it with another string. It has options to replace the first occurrence, the last occurrence, or all the occurrences. You can replace multiple strings at a time. You can also use wildcards to create simple patterns.&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Find &lt;br /&gt;
| Enter the string to be replaced. &lt;br /&gt;
*You can enter multiple strings at a time. They will be searched &amp;amp;amp; replaced in the order as they appear. Press the + button to insert a separator between two strings. Instead of pressing this button, you can also enter &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039; from the keyboard. &lt;br /&gt;
*If the name does not contain the specified string, the rule will not act on it. &lt;br /&gt;
*If the name contains more than one of these strings, it will replace them according to the Occurrences parameter.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] button &lt;br /&gt;
| Inserts a separator (&#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039;) sequence between two delimiter entries.&lt;br /&gt;
&lt;br /&gt;
In that case, the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; entry in the &#039;&#039;&#039;Find&#039;&#039;&#039; field is replaced by the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; entry in the &#039;&#039;&#039;Replace&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace &lt;br /&gt;
| Enter strings that will replace the &amp;quot;Find&amp;quot; strings. &lt;br /&gt;
&lt;br /&gt;
Note that the number of strings (separated with &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039;) in &amp;quot;Find&amp;quot; and &amp;quot;Replace&amp;quot; fields should be the same. If there is more strings in the &amp;quot;Find&amp;quot; field than in the &amp;quot;Replace&amp;quot; field the spare strings will be removed (replaced with an empty string). If there is more strings in the &amp;quot;Replace&amp;quot; field, the spare strings will be ignored.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
&lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Occurrences &lt;br /&gt;
| In case that strings occur more than once in the filename, specify which occurrences should be replaced.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive &lt;br /&gt;
| Will only remove a specified string from the name if the case matches exactly.&lt;br /&gt;
|-&lt;br /&gt;
| Whole words only&lt;br /&gt;
| Remove the subject text only when it is whole word, not a part of another word.&lt;br /&gt;
&lt;br /&gt;
For example, searching for &amp;quot;bar&amp;quot; would not find a match in &amp;quot;foobar&amp;quot; or &amp;quot;bars&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Interpret symbols as wild cards &lt;br /&gt;
| Treat certain symbols as [[#Wildcards|Wildcards]] for matching simple patterns (similar to [[ReNamer:Regular Expressions|Regular Expressions]]). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wildcards ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wildcard&lt;br /&gt;
! Represents&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;*&amp;lt;/center&amp;gt; &lt;br /&gt;
| any number of characters (including numbers, space, underscores, etc.). &lt;br /&gt;
| &#039;&#039;&#039;abc*&#039;&#039;&#039; equals &#039;&#039;&#039;abc&#039;&#039;&#039; followed by 0 or more characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;?&amp;lt;/center&amp;gt; &lt;br /&gt;
| Any single character (including numbers, space, underscores, etc.) &lt;br /&gt;
| &#039;&#039;&#039;ab?d&#039;&#039;&#039; equals &#039;&#039;&#039;abcd&#039;&#039;&#039;, &#039;&#039;&#039;ab1d&#039;&#039;&#039;, &#039;&#039;&#039;ab d&#039;&#039;&#039;, &#039;&#039;&#039;ab_d&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;[]&amp;lt;/center&amp;gt; &lt;br /&gt;
| Brackets enclose a set of characters, any one of which may match a single character at that position. &lt;br /&gt;
| &#039;&#039;&#039;foo[ab]ar &#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039; and &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;-&amp;lt;/center&amp;gt; &lt;br /&gt;
| (only within a pair of brackets) denotes a range of characters. &lt;br /&gt;
| &#039;&#039;&#039;foo[a-z]ar &#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039;, &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foocar,&#039;&#039;&#039; &#039;&#039;&#039;foodar,&#039;&#039;&#039; etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Backreferences allow for reuse of wildcard matches in the Replace field using the &#039;&#039;&#039;$N&#039;&#039;&#039; notation, where &#039;&#039;&#039;$1&#039;&#039;&#039; is the first wildcard match, &#039;&#039;&#039;$2&#039;&#039;&#039; is second, and so on.&lt;br /&gt;
&lt;br /&gt;
Examples of the use of backreferences:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Find&lt;br /&gt;
! Replace&lt;br /&gt;
! Example Input&lt;br /&gt;
! Produced Output&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;*, *&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;$2 $1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Smith, John&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;John Smith&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Happy ?-th birthday *&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;$2 is $1 years old&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Happy 5-th birthday Bob&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;Bob is 5 years old&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beware of conflicting replacements == &lt;br /&gt;
&lt;br /&gt;
If you enter multiple find and replace strings they will be executed as multiple Replace rules, so first string will go first and only after replacing all (or first, or last) occurrences of that string the second string in the Find field will be searched and replaced.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Find&lt;br /&gt;
! Replace&lt;br /&gt;
|-&lt;br /&gt;
| A*{{Pipe}}*B&lt;br /&gt;
| B*{{Pipe}}*A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! New Name&lt;br /&gt;
|-&lt;br /&gt;
| ABBA.mp3&lt;br /&gt;
| AAAA.mp3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may expect the new name to be &amp;lt;tt&amp;gt;BAAB.mp3&amp;lt;/tt&amp;gt;, but it&#039;s not. This happens because first all &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;&#039;s are replaced with &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;&#039;s (we get &amp;lt;tt&amp;gt;BBBB.mp3&amp;lt;/tt&amp;gt;) and only then all &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;&#039;s are replaced with &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;&#039;s (and the final result is &amp;lt;tt&amp;gt;AAAA.mp3&amp;lt;/tt&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
If you need to apply character-to-character mappings you should use [[ReNamer:Rules:Translit|Translit rule]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Remove&amp;diff=3825</id>
		<title>ReNamer:Rules:Remove</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Remove&amp;diff=3825"/>
		<updated>2025-04-17T10:05:14Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Remove rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Delete|next=ReNamer:Rules:Replace}}&lt;br /&gt;
&lt;br /&gt;
[[Image:RemoveRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule removes the specified string from the file name. It has options to remove the first occurrence, the last occurrence, or all the occurrences of the specified string. You can enter multiple strings at a time (just separate them with &#039;&#039;&#039;*|*&#039;&#039;&#039;). If ReNamer finds any of them in the name, they will be removed. You can create a pattern with wildcards, so that any string that matches the pattern will be removed. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Remove &lt;br /&gt;
| Enter the string to be removed. &lt;br /&gt;
*You can enter multiple strings at a time. Press the + button to separate two strings &lt;br /&gt;
*If the name does not contain the specified string, the rule will not act on it. &lt;br /&gt;
*If the name contains more than one of these strings, it will remove all of them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TIP:&#039;&#039;&#039; Sometimes, the file names have a common string that needs to be removed. In such cases, rather than entering the whole string by hand, it is easier to borrow it from one of the file names. To do this, just click on a file name in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane of ReNamer &#039;&#039;BEFORE&#039;&#039; launching the &#039;&#039;&#039;Remove&#039;&#039;&#039; rule. ReNamer will automatically copy the entire name of the selected file into the Remove field. Now edit this entry to get the desired common string. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] button &lt;br /&gt;
| Inserts a separator (&#039;&#039;&#039;*{{Pipe}}*&#039;&#039;&#039;) sequence between two delimiter entries. (You can directly type *{{Pipe}}* instead of clicking on this button.)&lt;br /&gt;
|-&lt;br /&gt;
| Occurrences &lt;br /&gt;
| In case the strings occur multiple times in the name, specify which occurrences should be removed. (Options are: &#039;&#039;first only&#039;&#039;, &#039;&#039;last only&#039;&#039;, or &#039;&#039;all&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Case sensitive &lt;br /&gt;
| Will only remove a specified string from the name if the case matches exactly.&lt;br /&gt;
|-&lt;br /&gt;
| Whole words only&lt;br /&gt;
| Remove the subject text only when it is whole word, not a part of another word.&lt;br /&gt;
&lt;br /&gt;
For example, searching for &amp;quot;bar&amp;quot; would not find a match in &amp;quot;foobar&amp;quot; or &amp;quot;bars&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Interpret symbols as wildcards &lt;br /&gt;
| Treat certain symbols as [[#Wildcards|Wildcards]] for matching simple patterns (similar to [[ReNamer:Regular Expressions|Regular Expressions]]). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wildcards ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wildcard&lt;br /&gt;
! Represents &lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any number of characters (including numbers, space, underscores, etc.). &lt;br /&gt;
| &#039;&#039;&#039;abc*&#039;&#039;&#039; equals &#039;&#039;&#039;abc&#039;&#039;&#039; followed by 0 or more characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;?&amp;lt;/center&amp;gt; &lt;br /&gt;
| Any single character (including numbers, space, underscores, etc.) &lt;br /&gt;
| &#039;&#039;&#039;ab?d&#039;&#039;&#039; equals &#039;&#039;&#039;abcd&#039;&#039;&#039;, &#039;&#039;&#039;ab1d&#039;&#039;&#039;, &#039;&#039;&#039;ab d&#039;&#039;&#039;, &#039;&#039;&#039;ab_d&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;nowiki&amp;gt;[]&amp;lt;/nowiki&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Brackets enclose a set of characters, any one of which may match a single character at that position. &lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foo[ab]ar &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039; and &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;-&amp;lt;/center&amp;gt; &lt;br /&gt;
| (only within a pair of brackets) denotes a range of characters. &lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foo[a-z]ar &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;equals &#039;&#039;&#039;fooaar&#039;&#039;&#039;, &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foocar,&#039;&#039;&#039; &#039;&#039;&#039;foodar,&#039;&#039;&#039; etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3824</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=3824"/>
		<updated>2025-04-17T10:04:33Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Delete rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:DeleteRule.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This  rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the  &#039;&#039;&#039;Until &#039;&#039;&#039; positions. Optionally, it can delete from the specified  position till the end of the name. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*The starting position (count starts from 1) &lt;br /&gt;
*The delimiter from where the deletion starts.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*Count: Specify how many characters to be deleted, starting from the FROM position. &lt;br /&gt;
*Delete till a specified delimiter is reached. &lt;br /&gt;
**You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
*Delete all characters till the end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Delete current name&lt;br /&gt;
| A shortcut option for deleting the whole current name.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| Inverts the normal direction for counting a position, so that the count goes from right and towards left.&lt;br /&gt;
&lt;br /&gt;
When this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039; deletes all characters on the left, what we normally regard as the &#039;&#039;beginning&#039;&#039; of the name.&lt;br /&gt;
&lt;br /&gt;
For example, to keep only the four characters on the right side of the name and delete all the rest of the characters on the left, use:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;From:&#039;&#039;&#039; Position 5&lt;br /&gt;
* &#039;&#039;&#039;Until:&#039;&#039;&#039; Till the end&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| If you select this option, the delimiters themselves will be retained.&lt;br /&gt;
&lt;br /&gt;
If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3823</id>
		<title>ReNamer:Rules:Insert</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3823"/>
		<updated>2025-04-17T09:57:27Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Single guillemet as the display title separator&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Insert rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|next=ReNamer:Rules:Delete}}&lt;br /&gt;
&lt;br /&gt;
[[Image:InsertRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule inserts the specified string at the beginning of the name, or end of the name, or at any other specified position. It can also insert the string &#039;&#039;conditionally (&#039;&#039;only when the existing name contains a second specified string). &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Insert&lt;br /&gt;
| Enter the subject text that will be inserted.&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Where &lt;br /&gt;
| Where to insert the subject text. Select one of the [[#&amp;quot;Where&amp;quot; options|&amp;quot;Where&amp;quot; options]] described below.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Where&amp;quot; options ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Prefix &lt;br /&gt;
| Adds the string before the existing name.&lt;br /&gt;
|-&lt;br /&gt;
| Suffix &lt;br /&gt;
| Adds the string after the existing name. &lt;br /&gt;
*If the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is not checked, the specified text will be inserted &#039;&#039;after&#039;&#039; the extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position &lt;br /&gt;
| Insert at the specified position.&lt;br /&gt;
* The position index starts from 1.&lt;br /&gt;
* Count spaces and special characters also.&lt;br /&gt;
* You can count in the &#039;&#039;right-to-left&#039;&#039; direction&lt;br /&gt;
* You may use [[ReNamer:Analyze|Analyze]] window to check the position by pointing to the character with mouse or keyboard instead of counting it by yourself. Just [[ReNamer:Adding files and folders#Selecting files|select]] the file (or files) in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane and choose the &#039;&#039;&#039;Analyze name&#039;&#039;&#039; option from the context menu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| After text &lt;br /&gt;
| Insert the main subject text after the text entered in the &amp;quot;after text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;after text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Before text &lt;br /&gt;
| Insert the main subject text before the text entered in the &amp;quot;before text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;before text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| The current name is deleted prior to inserting the subject text.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3822</id>
		<title>ReNamer:Rules:Insert</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3822"/>
		<updated>2025-04-17T09:55:10Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Middle dot as the display title separator&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer · Rules · Insert rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|next=ReNamer:Rules:Delete}}&lt;br /&gt;
&lt;br /&gt;
[[Image:InsertRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule inserts the specified string at the beginning of the name, or end of the name, or at any other specified position. It can also insert the string &#039;&#039;conditionally (&#039;&#039;only when the existing name contains a second specified string). &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Insert&lt;br /&gt;
| Enter the subject text that will be inserted.&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Where &lt;br /&gt;
| Where to insert the subject text. Select one of the [[#&amp;quot;Where&amp;quot; options|&amp;quot;Where&amp;quot; options]] described below.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Where&amp;quot; options ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Prefix &lt;br /&gt;
| Adds the string before the existing name.&lt;br /&gt;
|-&lt;br /&gt;
| Suffix &lt;br /&gt;
| Adds the string after the existing name. &lt;br /&gt;
*If the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is not checked, the specified text will be inserted &#039;&#039;after&#039;&#039; the extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position &lt;br /&gt;
| Insert at the specified position.&lt;br /&gt;
* The position index starts from 1.&lt;br /&gt;
* Count spaces and special characters also.&lt;br /&gt;
* You can count in the &#039;&#039;right-to-left&#039;&#039; direction&lt;br /&gt;
* You may use [[ReNamer:Analyze|Analyze]] window to check the position by pointing to the character with mouse or keyboard instead of counting it by yourself. Just [[ReNamer:Adding files and folders#Selecting files|select]] the file (or files) in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane and choose the &#039;&#039;&#039;Analyze name&#039;&#039;&#039; option from the context menu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| After text &lt;br /&gt;
| Insert the main subject text after the text entered in the &amp;quot;after text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;after text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Before text &lt;br /&gt;
| Insert the main subject text before the text entered in the &amp;quot;before text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;before text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| The current name is deleted prior to inserting the subject text.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3821</id>
		<title>ReNamer:Rules:Insert</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Insert&amp;diff=3821"/>
		<updated>2025-04-17T09:53:29Z</updated>

		<summary type="html">&lt;p&gt;Den4b: Display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ReNamer › Rules › Insert rule}}&lt;br /&gt;
{{Go|up=ReNamer:Rules|next=ReNamer:Rules:Delete}}&lt;br /&gt;
&lt;br /&gt;
[[Image:InsertRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule inserts the specified string at the beginning of the name, or end of the name, or at any other specified position. It can also insert the string &#039;&#039;conditionally (&#039;&#039;only when the existing name contains a second specified string). &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Insert&lt;br /&gt;
| Enter the subject text that will be inserted.&lt;br /&gt;
|-&lt;br /&gt;
| Insert meta tag &lt;br /&gt;
[[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]].&lt;br /&gt;
|-&lt;br /&gt;
| Where &lt;br /&gt;
| Where to insert the subject text. Select one of the [[#&amp;quot;Where&amp;quot; options|&amp;quot;Where&amp;quot; options]] described below.&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension&lt;br /&gt;
| If checked, the file extension will be excluded from the processing and will remain unaffected.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Where&amp;quot; options ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Prefix &lt;br /&gt;
| Adds the string before the existing name.&lt;br /&gt;
|-&lt;br /&gt;
| Suffix &lt;br /&gt;
| Adds the string after the existing name. &lt;br /&gt;
*If the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is not checked, the specified text will be inserted &#039;&#039;after&#039;&#039; the extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Position &lt;br /&gt;
| Insert at the specified position.&lt;br /&gt;
* The position index starts from 1.&lt;br /&gt;
* Count spaces and special characters also.&lt;br /&gt;
* You can count in the &#039;&#039;right-to-left&#039;&#039; direction&lt;br /&gt;
* You may use [[ReNamer:Analyze|Analyze]] window to check the position by pointing to the character with mouse or keyboard instead of counting it by yourself. Just [[ReNamer:Adding files and folders#Selecting files|select]] the file (or files) in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane and choose the &#039;&#039;&#039;Analyze name&#039;&#039;&#039; option from the context menu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| After text &lt;br /&gt;
| Insert the main subject text after the text entered in the &amp;quot;after text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;after text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Before text &lt;br /&gt;
| Insert the main subject text before the text entered in the &amp;quot;before text&amp;quot; box. &lt;br /&gt;
*If the &amp;quot;before text&amp;quot; string is not found in the name, the main subject text will not be inserted.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Replace current name&lt;br /&gt;
| The current name is deleted prior to inserting the subject text.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Regular_Expressions&amp;diff=3820</id>
		<title>ReNamer:Regular Expressions</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Regular_Expressions&amp;diff=3820"/>
		<updated>2025-04-15T16:21:11Z</updated>

		<summary type="html">&lt;p&gt;Den4b: /* Useful references */ Rephrased the references, included FPC RegEx wiki link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Regular Expressions (RegEx) is a syntax for specifying patterns of text to search and replace, which can be used for renaming files via the [[ReNamer:Rules:RegEx|Regular Expressions renaming rule]]. Special metacharacters allow you to specify, for instance, that a particular string you are looking for occurs at the beginning or end of a line, or contains N recurrences of a certain character.&lt;br /&gt;
&lt;br /&gt;
Metacharacters, such as &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$ . ^ { [ ( | ) * + ? \&amp;lt;/span&amp;gt; are &#039;&#039;interpreted&#039;&#039; according to their individual meaning, instead of finding a literal match for them. &lt;br /&gt;
&lt;br /&gt;
In this document, RegEx patterns are shown in &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;bold orange&amp;lt;/span&amp;gt;. The subject text which is checked against a RegEx pattern for a possible match is shown in &#039;&#039;&#039;bold black&#039;&#039;&#039;. Parts of the subject text are color-coded to provide a clue as to why a certain part matches (&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; color), or does &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; match (&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt; color).&lt;br /&gt;
&lt;br /&gt;
== Simple matches ==&lt;br /&gt;
&lt;br /&gt;
When the search string does not contain any metacharacters, the RegEx engine works like &amp;quot;normal&amp;quot; search. (it tries to find an exact copy of the search string.) (This is also known as &amp;quot;literal match&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
If you want to find a literal match for a metacharacter, put a backslash &#039;&#039;&#039;\&#039;&#039;&#039; &#039;&#039;before&#039;&#039; it. (The &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt; character is called &amp;quot;&#039;&#039;escape character&#039;&#039;&amp;quot;, because it lets the metacharacter escape from its special duty, and lets it act as a normal character. Its combination with a metacharacter is called &amp;quot;&#039;&#039;escape sequence&#039;&#039;&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
For example, metacharacter &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; matches the beginning of string, but &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^&amp;lt;/span&amp;gt; matches the character &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Note that the RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\\&amp;lt;/span&amp;gt; matches the character &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Matches&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| This RegEx pattern does not contain any metacharacters; so all characters are matched literally.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^FooBarPtr&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;^FooBarPtr&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| The &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^&amp;lt;/span&amp;gt; escape sequence searches for the character &#039;&#039;&#039;^&#039;&#039;&#039; &#039;&#039;literally&#039;&#039; .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Escape sequences ==&lt;br /&gt;
&lt;br /&gt;
We already saw one use of escape sequence (above). &lt;br /&gt;
&lt;br /&gt;
Specific escape sequences are interpreted as special conditions, as listed below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! matches&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\xnn&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Character represented by the hex code &#039;&#039;nn&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\x{nnnn}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| two bytes char with hex code nnnn (unicode)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\t&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| tab (HT/TAB), same as \x09 (Hex 09)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\n&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| new line (NL), same as \x0a (Hex 0a)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| carriage return (CR), same as \x0d (Hex 0d)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\f&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| form feed (FF), same as \x0c (Hex 0c)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo\x20bar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foo bar&amp;lt;/span&amp;gt; (note the space in the middle), but does &#039;&#039;not&#039;&#039; match &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\tfoobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt; preceded by a tab (the tab is needed for the match)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the tab, new line, carriage return, and form feed are known as &amp;quot;white spaces&amp;quot;. But RegEx can distinguish between them. This allows you to make high-precision searches. &lt;br /&gt;
&lt;br /&gt;
== Character classes ==&lt;br /&gt;
&lt;br /&gt;
A character class is a list of characters surrounded by square brackets &amp;quot;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;quot; and &amp;quot;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;quot;, which will match any one (and only one) character from the list. &lt;br /&gt;
&lt;br /&gt;
Note that:&lt;br /&gt;
&lt;br /&gt;
* The characters are not separated with a comma or a space. &lt;br /&gt;
* If you repeat any character in the list, it is considered only once (duplicates are ignored). &lt;br /&gt;
* A hyphen &amp;quot;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;quot; is used to indicate range of characters.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[abcdef]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;d&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;, or &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;f&amp;lt;/span&amp;gt; (only &#039;&#039;one&#039;&#039; character), but no other characters&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[c-m]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the small alphabetical characters, from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;m&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[G-J]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the capital alphabetical characters from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;J&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[a-zA-Z]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the alphabetical characters (capital or small)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[5-8]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of numerical characters from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;8&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[\n-\x1F]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Matches any one (and only one) of characters with their ordinal value in range from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#10&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\n&amp;lt;/span&amp;gt;) to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#31&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\x1F&amp;lt;/span&amp;gt;), which in [https://en.wikipedia.org/wiki/ASCII ASCII] character table correspond to some non-printable characters.&lt;br /&gt;
&lt;br /&gt;
Note the use of [[#Escape_sequences|escape sequences]] inside of this example.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are some special conditions: &lt;br /&gt;
&lt;br /&gt;
*If you do not want any of the characters in the specified class, then place &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; at the very beginning of the list (RegEx interprets that as &amp;quot;none of the characters listed in this class&amp;quot;). &lt;br /&gt;
*If you want &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt; itself to be a member of a class, put it at the start or end of the list, or create a [[#Simple_.28literal.29_matches|escape sequence]] (by putting &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt; before it).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[-az]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;z&amp;lt;/span&amp;gt;, and &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;(since &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;–&amp;lt;/span&amp;gt; is put at the beginning, the escape sequence is not needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[a\-z]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;z&amp;lt;/span&amp;gt;, and &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;(since &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;–&amp;lt;/span&amp;gt; is &#039;&#039;not&#039;&#039; at the beginning/end, the escape sequence &#039;&#039;is&#039;&#039; needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[^0-9]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches any &#039;&#039;non-digit&#039;&#039; character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[]-a]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches any character from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;. &amp;lt;br&amp;gt;(since &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt; is at the beginning, the escape sequence &#039;&#039;is not&#039;&#039; needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob[aeiou]r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, etc. but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob[^aeiou]r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;r&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Predefined classes ==&lt;br /&gt;
&lt;br /&gt;
Some of the character classes are used so often that RegEx has predefined escape sequences to represent them. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| an alphanumeric character, including an &#039;&#039;underscore&#039;&#039; (&#039;&#039;&#039;_&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non-alphanumeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\d&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a numeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\D&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non-numeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\s&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any space (same as the &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[ \t\n\r\f]&amp;lt;/span&amp;gt; class)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\S&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non space&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any character in line (the symbol is just a dot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the capitalized letter is used to negate (for example, compare &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt; with &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
== Word and text boundaries ==&lt;br /&gt;
&lt;br /&gt;
A word boundary &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b&amp;lt;/span&amp;gt; matches a position between a word character &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt; and a non-word character &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;. For the purpose of a word boundary position, the start and end of text will be treated as non-word characters &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;. These markers are commonly used for matching patterns as whole words, while ignoring occurrences within words.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| word boundary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\B&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| not word boundary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\A&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| start of text (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; is an alternative)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\Z&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| end of text (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; is an alternative)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\bhis\b&amp;lt;/span&amp;gt; will search for a whole word &#039;&#039;&#039;his&#039;&#039;&#039;, but will ignore &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;t&amp;lt;/span&amp;gt;his&#039;&#039;&#039;, &#039;&#039;&#039;his&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;tory&amp;lt;/span&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;w&amp;lt;/span&amp;gt;his&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;tle&amp;lt;/span&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Iterators ==&lt;br /&gt;
&lt;br /&gt;
Iterators (quantifiers) are meta-characters that specify how many times the &#039;&#039;preceding&#039;&#039; expression has to repeat. For example, finding a numeric sequence exactly 3 to 5 digits long.&lt;br /&gt;
&lt;br /&gt;
Iterators can be &#039;Greedy&#039; or &#039;Non-Greedy&#039;. Greedy means the expression grabs as &#039;&#039;much&#039;&#039; matching text as possible. In contrast, the non-greedy expression tries to match as &#039;&#039;little&#039;&#039; as possible. &lt;br /&gt;
&lt;br /&gt;
All iterators are greedy by default. Adding &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt; (question mark) at the end of an iterator makes it non-greedy.&lt;br /&gt;
&lt;br /&gt;
For example: &lt;br /&gt;
&lt;br /&gt;
* when &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b+&amp;lt;/span&amp;gt; (a greedy expression) is applied to string &#039;&#039;&#039;abbbbc&#039;&#039;&#039;, it matches &#039;&#039;&#039;bbbb&#039;&#039;&#039; (as many as possible), &lt;br /&gt;
* but when &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b+?&amp;lt;/span&amp;gt; (a non-greedy expression) is applied to &#039;&#039;&#039;abbbbc&#039;&#039;&#039;, it matches only &#039;&#039;&#039;b&#039;&#039;&#039; (as few as possible).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
! Greedy?&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or more &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,}&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| one or more &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{1,}&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or one &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,1}&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| exactly &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,m}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; but not more than &#039;&#039;m&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;*?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or more &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,}?&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;+?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| one or more &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{1,}?&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;??&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or one &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,1}?&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n}?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| exactly &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,}?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,m}?&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; but not more than &#039;&#039;m&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Let us see some examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.*r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;alkjdflkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.+r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;alkjdflkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039; but not &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.?r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r,&#039;&#039;&#039; &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;r&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039; but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;alkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2}r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2,}r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r,&#039;&#039;&#039; &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2,3}r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, or &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; or &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
&lt;br /&gt;
A RegEx expression can have multiple alternative characters or subexpressions. The metacharacter &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt; is used to separate the alternatives. &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee|fie|foe&amp;lt;/span&amp;gt; will match with &#039;&#039;&#039;fee&#039;&#039;&#039;, &#039;&#039;&#039;fie&#039;&#039;&#039;, or &#039;&#039;&#039;foe&#039;&#039;&#039; in the target string. &lt;br /&gt;
&lt;br /&gt;
It is difficult to understand where each alternative starts and ends. This is why it is a common practice to include alternatives in parentheses, to make it easier to understand. &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee|fie|foe&amp;lt;/span&amp;gt; can be written as &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;f(e|i|o)e&amp;lt;/span&amp;gt;, to make it easier to understand. &lt;br /&gt;
&lt;br /&gt;
Alternatives are tried from left to right, so the first alternative found for which the entire expression matches, is the one that is chosen. For example, when matching &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo|foot&amp;lt;/span&amp;gt; against &#039;&#039;&#039;barefoot&#039;&#039;&#039;, only the &#039;&#039;&#039;foo&#039;&#039;&#039; part will match, because that is the first alternative tried, and it successfully matches the target string. (This is important when you are capturing matched text using parentheses.) &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo(bar&amp;amp;#124;foo)&amp;lt;/span&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foobar&#039;&#039;&#039; or &#039;&#039;&#039;foofoo&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also remember that alternatives cannot be used inside a character class (square brackets), because &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt; is interpreted as a literal within &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;. That means &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[fee|fie|foe]&amp;lt;/span&amp;gt; is same as &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[feio|]&amp;lt;/span&amp;gt;. (The other characters are treated as duplicates, and ignored).&lt;br /&gt;
&lt;br /&gt;
== Subexpressions ==&lt;br /&gt;
&lt;br /&gt;
Parts of any RegEx pattern can be enclosed in brackets &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;, just like using brackets in a mathematics formula. Each part that is enclosed in brackets is called a &amp;quot;&#039;&#039;subexpression&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The brackets serve two main purposes: &lt;br /&gt;
&lt;br /&gt;
* Better readability, as in the mathematical formula &#039;&#039;&#039;a+(b+c)&#039;&#039;&#039;.&lt;br /&gt;
* Make a functional group, as in the mathematical formula &#039;&#039;&#039;a(b+c)&#039;&#039;&#039;. This group is evaluated first.&lt;br /&gt;
&lt;br /&gt;
Let us see some examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(fee)&amp;amp;#124;(fie)&amp;amp;#124;(foe)&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Much better readability than the equivalent RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee&amp;amp;#124;fie&amp;amp;#124;foe&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(foobar){2,3}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with the entire enclosed string &#039;&#039;&#039;foobar&#039;&#039;&#039; repeated 2 or 3 times.&lt;br /&gt;
(i.e., matches with &#039;&#039;&#039;foobarfoobar&#039;&#039;&#039; or &#039;&#039;&#039;foobarfoobarfoobar&#039;&#039;&#039;)&amp;lt;br/&amp;gt;(The iterator acts on the entire subexpression. Compare with the example below!) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foobar{2,3}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;fooba&#039;&#039;&#039; followed by the character &#039;&#039;&#039;r&#039;&#039;&#039; repeated 2 or 3 times.&amp;lt;br/&amp;gt;(i.e., matches with &#039;&#039;&#039;fooba&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;rr&amp;lt;/span&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;fooba&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;rrr&amp;lt;/span&amp;gt;&#039;&#039;&#039;) (The iterator acts only on the last character.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob([0-9]&amp;amp;#124;a+)r&amp;lt;/span&amp;gt; &lt;br /&gt;
| matches only the character &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, etc.&amp;lt;br/&amp;gt;(The subexpression is evaluated first.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Backreferences ==&lt;br /&gt;
&lt;br /&gt;
You must have told (or heard-) jokes like this one: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Two guys walk in a bar. The &#039;&#039;&#039;&#039;&#039;first guy&#039;&#039;&#039;&#039;&#039; says.... Then the &#039;&#039;&#039;&#039;&#039;second guy&#039;&#039;&#039;&#039;&#039; replies....&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Then you are already familiar with &#039;&#039;backreferences&#039;&#039;! &lt;br /&gt;
&lt;br /&gt;
A &amp;quot;&#039;&#039;backreference&#039;&#039;&amp;quot; is a &#039;&#039;numbered reference&#039;&#039; to a previously mentioned thing. &lt;br /&gt;
&lt;br /&gt;
RegEx also has backreferences. Let us understand how backreferences are defined in RegEx. &lt;br /&gt;
&lt;br /&gt;
The RegEx engine tries to find text that matches the &#039;&#039;whole&#039;&#039; RegEx pattern. If a matching text is found, the RegEx engine identifies the matching text for each of the subexpressions in the pattern. &lt;br /&gt;
&lt;br /&gt;
At this stage, the RegEx engine gives numbers to these matching parts: &lt;br /&gt;
&lt;br /&gt;
* The text that matches the &#039;&#039;entire&#039;&#039; RegEx expression takes the number &#039;0&#039;. &lt;br /&gt;
* The text matching any subexpression is given a number based on the position of that subexpression inside the pattern. In other words, text matching the &#039;&#039;n&#039;&#039;th subexpression will take the number &#039;n&#039;.&lt;br /&gt;
&lt;br /&gt;
Now we use those numbers to refer to the entire pattern and/or subexpressions. (That is why these numbers are called &amp;quot;&#039;&#039;&#039;backreference&#039;&#039;&#039;&amp;quot;.) &lt;br /&gt;
&lt;br /&gt;
The backreference to the &#039;&#039;n&#039;&#039;&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; subexpression is written as &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\n&amp;lt;/span&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The backreferences can be used to compose the RegEx pattern itself, as shown below: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.)\1+&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;aaaa&#039;&#039;&#039; and &#039;&#039;&#039;cc&#039;&#039;&#039; (any single character that is repeated twice or more)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+)\1+&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;123&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;123&amp;lt;/span&amp;gt; &lt;br /&gt;
(a set of one or more characters, repeated twice or more) &lt;br /&gt;
&lt;br /&gt;
(The character-sets are alternately colored &amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;blue&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;pink&amp;lt;/span&amp;gt; for easy identification. Observe how a RegEx pattern can match quite different text!) &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Substitution of text using backreference ===&lt;br /&gt;
&lt;br /&gt;
The backreferences are also used in &#039;&#039;find-and-replace&#039;&#039; operations, to re-assemble new text from old. &lt;br /&gt;
&lt;br /&gt;
*The expressions &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\1&amp;lt;/span&amp;gt; through &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\9&amp;lt;/span&amp;gt; serve as backreferences to the subexpressions found in the RegEx pattern. The expression &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\0&amp;lt;/span&amp;gt; is used to represent the text that matches the whole RegEx pattern. These are used in the &amp;quot;find&amp;quot; part of the operation. &lt;br /&gt;
*The expressions &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt; through &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$9&amp;lt;/span&amp;gt; represent the actual text that matches the &#039;&#039;respective&#039;&#039; subexpressions. These are used in the &amp;quot;replace&amp;quot; part of the operation.&lt;br /&gt;
*The expressions &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$0&amp;lt;/span&amp;gt; refers to the whole original name. Note: it is not necessary to enclosed them in round brackets &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt; for this use, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$0&amp;lt;/span&amp;gt; is just there.&lt;br /&gt;
&lt;br /&gt;
The replacement text is typically a combination of- &lt;br /&gt;
&lt;br /&gt;
* The text that matched the subexpressions, and &lt;br /&gt;
* Some new text.&lt;br /&gt;
&lt;br /&gt;
Note that the RegEx pattern &#039;&#039;may&#039;&#039; have some parts that are not enclosed in (). (In other words, it may have parts that are not subexpressions.) Such parts are not used in the replacement text. &lt;br /&gt;
&lt;br /&gt;
Here are some &amp;quot;find-and-replace&amp;quot; examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Expression&lt;br /&gt;
! Replace&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.*) (.*)&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$2, $1&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Switch two words around and put a comma after the resulting first word. Example: if input string is &amp;quot;John Smith&amp;quot;, then output will be &amp;quot;Smith, John&amp;quot;. &lt;br /&gt;
Notice that the replacement text also has additional literal text in the middle (comma and space). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b(\d{2})-(\d{2})-(\d{4})\b&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$3-$2-$1&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Find date sequences in dd-mm-yyyy format and reverse them into yyyy-mm-dd format. &amp;lt;br&amp;gt;(e.g. 25-10-2007 is converted to 2007-10-25). &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: This is not a very robust example, because &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\d&amp;lt;/span&amp;gt; can represent any digit in range of 0-9. That means sequences like 99-99-9999 also will match this pattern, resulting in a problem. This in fact shows that you need to be careful with RegEx patterns! &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\[.*?\]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
| Remove the contents of the [...] (square brackets), and the brackets too. &amp;lt;br&amp;gt;(Replace with &#039;&#039;nothing&#039;&#039; means &#039;&#039;deleting&#039;&#039;.) &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Upper case and lower case manipulations ===&lt;br /&gt;
&lt;br /&gt;
Backreferences can also be used to adjust the case of a certain patterns or fragments, which cannot be easily achieved with generic case manipulation rules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Flag&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\L&amp;lt;/code&amp;gt;&lt;br /&gt;
| Convert all characters to lowercase.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\l&amp;lt;/code&amp;gt;&lt;br /&gt;
| Convert only the first character to lowercase (that&#039;s a lower case L).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\U&amp;lt;/code&amp;gt;&lt;br /&gt;
| Convert all characters to uppercase.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\u&amp;lt;/code&amp;gt;&lt;br /&gt;
| Convert only the first character to uppercase.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These flags can be used together with the backreferences in the replace pattern to adjust the case of text inserted by backreferences.&lt;br /&gt;
&lt;br /&gt;
For example, we can do the following manipulations:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Input || Find || Replace || Result&lt;br /&gt;
|-&lt;br /&gt;
| test ExAmple || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+) (.+)&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$1 $2&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;test ExAmple&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ExAmple || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+) (.+)&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\U$1 $2&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;TEST&amp;lt;/span&amp;gt; ExAmple&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ExAmple || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+) (.+)&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$1 \L$2&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;test &amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;example&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ExAmple || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+) (.+)&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\u$1 \L$2&amp;lt;/span&amp;gt; || &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;T&amp;lt;/span&amp;gt;est &amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;example&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Case manipulation features were added in &#039;&#039;v5.72.4 Beta&#039;&#039;. This feature is less common and may not exist in other RegEx engines.&lt;br /&gt;
&lt;br /&gt;
== Limitations for binary data ==&lt;br /&gt;
&lt;br /&gt;
One of the known limitation of RegEx engine when working with binary data is that the &amp;lt;u&amp;gt;input string is not searched beyond the first occurrence of NULL character (\x00)&amp;lt;/u&amp;gt;. This would not affect file names because there are simply no NULL characters in them, but may affect parsing of binary content of files when working in [[ReNamer:Pascal Script|Pascal Script]] for example.&lt;br /&gt;
&lt;br /&gt;
== Useful references ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.regular-expressions.info/ Regular-Expressions.info] – Excellent site devoted to regular expressions. It is nicely structured, with many easy to understand examples.&lt;br /&gt;
* [https://github.com/andgineer/TRegExpr TRegExpr] – Regular expressions library for Delphi and Free Pascal. For syntax and API documentation see [https://regex.sorokin.engineer/ regex.sorokin.engineer].&lt;br /&gt;
* [https://wiki.freepascal.org/RegEx_packages FPC RegEx packages] – Regular expressions libraries included in Free Pascal.&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Den4b</name></author>
	</entry>
</feed>