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 Find bruce (talk | contribs) at 03:31, 8 May 2019 (I have a table with 'Find', and 'Replace with' fields, is there a way to import this into 'AutoWikiBrowser'?: It worked for me, thanks). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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]

Ignore "|url=" and "|title=" of citation templates?

Find and replace offers one the ability to ignore the entirety of "templates, refs, link targets, and headings", however, I wanted to know if it was possible to only ignore the not-to-be-changed parameters in citation templates (|url= and |title= as prime examples), but still change interwiki link targets, also within citation templates (e.g. in the |website= parameter). Lordtobi () 14:11, 25 February 2018 (UTC)[reply]

I have a table with 'Find', and 'Replace with' fields, is there a way to import this into 'AutoWikiBrowser'?

Hi all, I have a table with 'Find', and 'Replace with' fields, is there a way to import this into 'AutoWikiBrowser'? Best regards DynamoDegsy (talk) 13:21, 16 March 2018 (UTC)[reply]

Not easily. You can save your settings in an XML file. You can try by adding one of your entries and saving it, then looking at that XML file. If you think you can convert your table to that format, you're set. There are no tools that I know of that can do this. Walter Görlitz (talk) 14:31, 16 March 2018 (UTC)[reply]
I came here looking for an answer to the same issue - a govt website had changed the unique page identifier that affected ~2,000 articles. I used the method Walter Görlitz suggested, so thanks for that, although the process was easier than I feared. The code will depend on the particular settings you have used, but to replace aaaa with bbbb will be along the lines of 1st block of code that repeats aaaa 2nd block of code that repeats bbbb 3rd block of code that repeats. My table was in excel, so I simply added a column before, column in the middle & column after. Copied the 3 blocks of code down the table. Opened the XML file with notepad & pasted the 5 columns as plain text, making sure it included line breaks at all the appropriate points. Whilst it isn't perfect, those errors are a result of my settings rather than copying the table. Find bruce (talk) 03:31, 8 May 2019 (UTC)[reply]

Replace uppercase by lowercase

Hi,

Is is possible to replace a string in uppercase by the same in lowercase?

For the context, on Wikisource the OCR sometimes put all caps words who need to be convert in small caps (lowercase inside the template {{sc}}). I found the syntaxe ([A-Z])([A-Z]*) -> $1\L$2 online but it doesn't work :( Any idea?

Cdlt, VIGNERON * discut. 11:36, 3 February 2019 (UTC)[reply]

I don't think changing case is possible in regex itself, but you can take advantage of magic words in the replace string. E.g., \b([A-Z]+)\b{{sc|{{subst:lc:$1}}}}. SiBr4 (talk) 12:57, 3 February 2019 (UTC)[reply]
Apparently, some flavours (?) of regex have a \L that transforms into lowercase.
Thanks your solution works perfectly !
Cdlt, VIGNERON * discut. 13:16, 3 February 2019 (UTC)[reply]