a ta.wikipedia pageに英語の単語をデリンクするための次のプログラムを書いた。 Delinkは英語の前後にある大括弧の除去を意味します。私はPAWS(pywikibot)を初めて使っています。削除は正規表現(A-Z、a-z)で行うことができるようです。どうやって?pywikibotの検索と置換モードのための英語の単語を見つける正規表現は
import pywikibot
import re
site = pywikibot.Site('ta', 'wikipedia')
page = pywikibot.Page(site, title)
page.text = page.text.replace('[[Eudicots]]','Eudicots')
page.save()
私の英語のために申し訳ありません。英語は私のためのブリッジ言語です。私はデバッグするよう求めていません。しかし、次のような繰り返しのコードは避けてください。 たとえば、次の26文字(アルファベット)のコードは[[かっこ]
page.text = page.text.replace('[[A','A')
page.text = page.text.replace('[[B','B')
page.text = page.text.replace('[[C','C')
likewise, A to Z
page.text = page.text.replace('[[X','X')
page.text = page.text.replace('[[Y','Y')
page.text = page.text.replace('[[Z','Z')
次に、常に単語の末尾にある小文字を削除する必要があります。なぜなら、すべての単語は小文字で終わるからです。小文字を削除するには、次のコードを書く必要があります。
page.text = page.text.replace('a]]','a')
page.text = page.text.replace('b]]','b')
page.text = page.text.replace('c]]','c')
page.text = page.text.replace('d]]','d')
(likewise, for all the 26 English letters)
page.text = page.text.replace('x]]','x')
page.text = page.text.replace('y]]','y')
これは良いコーディングではないと思います。だから私は正規表現を使用したい。 私はウィキメディアプロジェクトの必要性を提供してくれることを願っています。
つまり、英語の単語ではなく、英語の単語の括弧を削除したいと考えています。
ただし、]]はブラケットだけを削除します。 [https://ta.wikipedia.org/w/index.php?title=%E0%AA%AA%E0%AE%AF%E0%AE%A9%E0%AE%B0%E0%AF%8Dを参照してください。 %3AInfo-farmer%2FPAWS&type = revision&diff = 2156707&oldid = 2156706 page = pywikibot.Page(site、title) page.text = re.sub( '([A-Za-z])]]'、 '\\ 1 '、page.text) page.save() –
また、インターウィキリンクの例のブラケットを削除してはいけません。[[:en:Parkia speciosa]] –
私はそれを呼び出しに結合するのが難しくないと確信しています: )あなたが単一の正規表現でそれらを望むなら、 '(\ [\ [|]])(?![A-Za-z])'のようなものが動作します。 interwikisを免除することは正規表現が良いツールではないことです。あなたはコールバックで 're.sub'を試すことができますが、おそらく[mwparserfromhell](https://github.com/earwig/mwparserfromhell)のようなものを使う方が良いでしょう。 – Tgr