1

是否可以使用 Regex lookbehind 表达式来匹配方括号中前面的所有单词,在此示例中匹配单词consecteturlibero ?

Lorem ipsum dolor sit amet, consectetur [adipiscing] 精英。Nunc eu Tellus vel nunc pretium lacinia。Proin sed lorem。疯狂的 ipsum。Nunc a libero [quis] risus sollicitudin imperdiet。

我想将 MS Word 中的字典条目与条目内容分隔开。条目后面是方括号中的音标,一旦以这种方式选择它们,我会增加它们的字体,从而使它们与文本的其余部分区分开来,并与内容分隔开。

编辑:肯特给出的表达与单字条目完美搭配,例如:

沸腾 ['boilin] adj 1. vreo, uzavreo, kipući 2. razjaren, uzrujan

带有连字符的两个单词条目,例如:

沸点 ['沸点] s vrelište

但是短语动词和其他两个词条目的第一个单词被省略了,这意味着在诸如以下的条目中:

栓出 ['bault'aut] vt isključiti; 伊兹拉努蒂

比赛结束,而不是因为我需要它。

由于这是一本字典,我可以分别为每个字母范围应用正则表达式,如果我有一个正则表达式来搜索以括号前面的特定字母开头的第一个单词,我将能够解决这个问题,匹配那个词和后面的词。对于我的示例中的“B”条目,这意味着该表达式将匹配以字母 B 开头的单个单词,将两个单词条目连字符作为沸点,并将匹配短语动词中的“ bolt ”,例如“ bolt out ” " 以及它后面的介词,即在这种情况下为“out”。

我的字典中可能只有少数(如果有的话)两个词的词条,这些词条中的词以相同的字母开头,我真的可以忍受这么小的误差。

EDIT2:我在方括号之前放置了分段符,现在我在上一行的末尾有我的条目,如下所示:

[aidwulf] s zool vrsta hijene (Proteles cristata) Aron 的胡须

[earanzrod] s bot divizma (Verbascum Thapsus) Abacca

[a'baid'on] vi biti na pomoći, stajati uz bok abide with

Aaron's beard是第二行以方括号开头的条目,Abacca是第三行以方括号开头的条目,依此类推。

为了解决我的问题,我需要两个正则表达式。首先,我需要一个正则表达式来匹配以 Aa 开头的单词中的每个字母 Aa,并且只匹配每行最后一个单词之前的单词。在我的示例中,在第一个示例中将匹配Aaron's中的A,在第三个示例中匹配a in abide。然后我会用星号替换这封信以获得*ron 的胡须*bide

第二个正则表达式将匹配每行中的每个最后一个单词(包括连字符的双单词复合)和我之前创建的以星号开头的单词。

感谢您的帮助。

4

1 回答 1

1

你需要向前看,而不是向后看:

\w+(?=\s*\[[^]])

用 grep 测试:

kent$  echo "Lorem ipsum dolor sit amet, consectetur [adipiscing] elit. Nunc eu tellus vel nunc pretium lacinia. Proin sed lorem. Cras sed ipsum. Nunc a libero [quis] risus sollicitudin imperdiet."|grep -Po '\w+(?=\s*\[[^\]])'
consectetur
libero

编辑

试试这个正则表达式:

[bB].+?(?=\s*\[[^]])

仍然用 grep 测试:

kent$  cat file
boiling ['boilin] adj 1. vreo, uzavreo, kipući 2. razjaren, uzrujan
with hyphenated two-word entries such as:
boiling-point ['boilin point] s vrelište
but the first word of phrasal verbs and other two-word entries is left out, which means that in the entries such as:
bolt out ['bault'aut] vt isključiti; izlanuti

kent$  grep -oP '[bB].+?(?=\s*\[[^]])' file
boiling
boiling-point
bolt out
于 2013-04-16T10:46:50.337 回答