請賜教 正則執行步驟怎麼看

②我觉得不能

華大,那是否只能寫個 python 程序去遍歷想要做個錨點的單詞或詞組存在於哪些詞條內,然后再給它的標簽編碼…不然以目前現有的工具似乎做不到

任意编程语言,正则我觉得没这个灵活度。

嗯嗯,理解,那請問第一個問題是否碰過,因過長會被截斷,是否有其它的文字編輯器的替代框是支持較長文字的呢?

没遇到过。

不过如果真遇到了这个问题,是不是应该考虑下查找内容是否合理。。

5个“间隙”,加上4个 “a”,不就等于9次匹配么?

“a?” 匹配的是0个或者1个 “a”,后面的那个 “?”,代表非贪婪模式,也是说优先匹配0个 “a"(间隙),退而求其次匹配1个 “a”。正则表达式能匹配“间隙”,比如 “\b” 和 “\B” 就匹配与 “\w”、“\W” 有关的“间隙”。

regex101 网站,点击右上角“汉堡”图标可以看说明的。

lurker兄,一事不明:
这里既然是非贪婪模式, 应该在第一个间隙就找到匹配了,无需继续匹配。为何还要匹配9次呢?
试过用其他的regex工具,测试确实1次就匹配完成。

有點難懂,若是想從現有詞條的某個 a href 跳往某個詞條的某 id no. 這可能搞嗎?

一個癥結點在于,單字是想自己去加鏈的,那便產生一個頭大的問題,若要唯一,那便是用 id no ,但一個單字可能在很多的詞條重複出現,如此那便需給id 編個碼,且不能重複,問題在于用什工具找出那個單詞且編個碼…
是否得用程序去遍歷整個檔案,且找到時給個 id no,在此處我一直很多疑問,沒有工具如何處理呢?

②另外還有一個疑問,若是想在整部詞典內的內容中加入 <p><a id="0001" href="entry://C4">Jump to Chapter 4</a></p>
但這 id 是需要自動的去增碼…因若要唯一的跳轉應該是只能用 id 編碼…請問類似此問題,正則能解嗎?,還是說有其它的工具能完成

不编程的话,想到个笨办法。前后打标,导入excel按打标分列,输入第一行id,拖拽自动填充其余id,再导出,去掉打标即可。

是的,這也是我想的,但頗為麻繁的方法,且還有一點,如何找到你要打錨的單字,畢竟,你可能有一堆單字都要打錨…若在加上編碼這就非常頭疼

在文本中匹配一次,还是尽可能多次,与 /g(全局匹配)设置项有关,与贪婪/非贪婪无关。

The modifier '/g' stands for global matching and allows the matching operator to match within a string as many times as possible.

正则表达式默认是吃了吐的贪婪模式,比如 a? 会先尝试匹配1个 a,不行再试0个 a;然后是非贪婪模式,a?? 会先尝试匹配0个 a,不行再试1个 a;最后是吃了不吐的贪婪模式,a?+ 这里不细说。使用regex,绕不开 backtracking。

2 个赞

一個癥結點在于,單字是想自己去加鏈的,那便產生一個頭大的問題,若要唯一,那便是用 id no ,但一個單字可能在很多的詞條重複出現,如此那便需給id 編個碼,且不能重複,問題在于用什工具找出那個單詞且編個碼…
是否得用程序去遍歷整個檔案,且找到時給個 id no,在此處我一直很多疑問,沒有工具如何處理呢?

可以举个具体的例子说明下吗?

就像我想以Babylon English上所有的詞頭和詞組去它所有的詞條內找釋義中有詞組或單詞,然后給個 a id no. 這你會怎麼處理

不太理解这么做有什么用处呢,只要释义里出现对应单词或词组, 都要添加id,是需要从其他地方跳过来吗?那不是会有海量的跳转, 而且这样跳转的意义是什么呢?

我是想弄詞組部份,但似乎連搜尋到詞組也都有困難,id no. 只是可能在一張集成表上列出有哪些單字內有這個詞組,到時後一按就剛好跳到那個詞頭的那個位置

这个用正则感觉比较勉强啊, 编程的话可能不太难。

大概的思路是:词组拆分成单词, 每个单词entry对应释义里匹配下有没有这个词组,有的话,词组那里就添加这个单词entry的跳转链接。

不过如果算上例句,语法,同义词之类的,那要查找词组工作量是比较大了。不如直接用goldendict之类的全文搜索功能?

哈!哈!,Babylon 沒有例句,只是有個想法,是否得用 python + 正則來達成

哦,之前没考虑其他词的释义里用到的词组。这样难度不小啊,有些类似隔壁的反查系列了。而且词组有不同搭配,词序变化之类,要完整匹配更难啊。

嗯嗯,還真有點像,但他那個是漢英查找,我想弄的是英英的錨點…或許搞的方法差不多吧!…