Jump to content

Wikipedia talk:AutoWikiBrowser/Find and replace

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Sanglahi86 (talk | contribs) at 06:15, 14 October 2016 (Problem with find and replace capture: Add reply.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Move bold

I want to replace this:

'''Any words (born {{birthdate|any number|any number|any number}})'''

with this:

'''Any words''' (born {{birthdate|any number|any number|any number}})

I want to keep the words and numbers, but move the bold so that the only the “Any words” at the start is bold and not the whole thing.

I tried this:
Find:

'''(.*) (born {{birthdate|(.*)|(.*)|(.*)}})'''

Replace:

'''$1''' (born {{birthdate|$2|$3|$4}})

…but that did not work.

Example

Replace this:

'''John Smith (born {{birthdate|1973|12|05}})'''

with this:

'''John Smith''' (born {{birthdate|1973|12|05}})

Could anyone please help?
PapíDimmi (talk | contribs) 23:36, 4 July 2016 (UTC)[reply]

Remember to escape special characters. I use regex101 for regex debugging, it will break it down for you. —  crh 23  (Talk) 18:07, 5 July 2016 (UTC)[reply]
Ah, silly me. I forgot to escape the special characters. That online regex tester is really helpful, by the way. Thank you so much for your help! Hopefully I will be able to figure out future problems on my own instead of having to ask here.
PapíDimmi (talk | contribs) 22:23, 5 July 2016 (UTC)[reply]

Add to bottom of page

Hi. I want to use AutoWikiBrowser to add a category to a page if it does not contain a template.

I added the template to the “Not contains” section in a rule in advanced find and replace, and then I tried with .*? and also the s modifier and replacing it with

$1
[[Category:Categoryname]]

…but that did not work at all.

I want to add a category to every page that does not include a specific template. Is there a way to do this?
PapíDimmi (talk | contribs) 14:07, 6 July 2016 (UTC)[reply]

If you absolutely mean bottom of the page, do a append text under the "More..." tab and a skip if doesn't contain (if it has option do skip if contains {{template| —  crh 23  (Talk) 14:14, 6 July 2016 (UTC)[reply]
You mean using the add category feature in the “More…” tab and setting skip options in the “Skip” tab? I want to add this category among many other changes, and I do not want to skip all of them just because the page does not include a template. I guess I could disable everything except the category add and do one go to add the category and then another with the other changes later. It is not what is most ideal to me, but since it apparently is my only option, I guess it will have to do. Thanks for your help.
PapíDimmi (talk | contribs) 14:34, 6 July 2016 (UTC)[reply]

Replace XXxYYpx with XXpx

I want to replace "XXxYYpx" with "XXpx" in file names if both numbers are the same.

E.g., replace [[File:Some kind of image.png|340x340px|Some kind of image caption]] with [[File:Some kind of image.png|340px|Some kind of image caption]].

(I do not know how I match two of the same string of characters with RegEx.)

I thought that general fixes does this, but apparently it does not.
PapíDimmi (talk | contribs) 17:14, 9 July 2016 (UTC)[reply]

Captured groups can be backreferenced in the Find string using a backslash followed by the number: (\d+)x\1px$1px. Note that 340x340px and 340px aren't always interchangeable: any vertical image will render larger with the second code than with the first. SiBr4 (talk) 18:04, 9 July 2016 (UTC)[reply]
Thank you!
PapíDimmi (talk | contribs) 09:36, 10 July 2016 (UTC)[reply]

Match if two words are the same?

I want to replace something with something else—but only if two strings are exactly the same.

If they are not the same, I want to replace it with something else.

To be more specific, I want to replace [[Wikipedia:X|X]] (where both “X”s are the same word or words) with {{w|X}}, but if they are not the same word or words, I want to replace [[Wikipedia:X|Y]] (where “X” is one word, and “Y” is another) with {{w|X|Y}}.

Examples
  • Replace [[Wikipedia:Video game|Video game]] with {{w|video game}}
  • Replace [[Wikipedia:Fireworks|tree]] with {{w|Fireworks|tree}}

PapíDimmi (talk | contribs) 03:03, 16 September 2016 (UTC)[reply]

You'll need two separate regexes. For example, \[\[Wikipedia:([^\[\]\|]+)\|([^\[\]\|]+)\]\]{{w|$1|$2}} to change all links to templates, followed by \{\{w\|([^\[\]\|]+)\|\1\}\}{{w|$1}} to remove the second parameter if link and label are the same. Case differences such as {{w|Video game|video game}} can be matched by not marking the second as case-sensitive, but it doesn't seem possible to make only the first character case-insensitive, like Wikipedia titles. SiBr4 (talk) 18:26, 16 September 2016 (UTC)[reply]
@SiBr4: That works. Thank you!
PapíDimmi (talk | contribs) 02:09, 17 September 2016 (UTC)[reply]

Problem with find and replace capture

I can't seem to get the Regex capture working. In AWB Regex Tester, I tested
^(\|.*area_total_km2\s+=).*

to find a parameter of infobox settlement:
| area_total_km2 = 169.75

The replacement I used was
\1 {{PH wikidata|area}}

with the intended result to give
| area_total_km2 = {{PH wikidata|area}}

But the result AWB gave was erroneous:
\1 {{PH wikidata|area}}

Both Multiline and ExplicitCapture settings are checked. Is there something wrong with the settings or syntax? I tested it on Notepad++ and the replacement works as intended. Sanglahi86 (talk) 13:42, 13 October 2016 (UTC)[reply]

The code for backreferences in the "Replace" string is $1, not \1. Backreferences in the "Find" string do use the latter form. SiBr4 (talk) 19:53, 13 October 2016 (UTC)[reply]
Thank you very much for the info. Sanglahi86 (talk) 06:15, 14 October 2016 (UTC)[reply]