任何人帮助我。一直试图让这个正则表达式工作,它几乎就在那里。它们似乎都是正确的,但第一个应该是:
字:el,la 性别:艺术 word_en:(+ m,f)
第一个测试字符串是:
1
el, la art the (+m, f)
• el diccionario tenía también frases útiles – the dictionary also had
useful phrases
2055835 | 201481381
另一个问题是我一直试图简单地复制信息。从“替换”部分进入LibreOffice。我想要做的就是为数据创建6列。问题是第6列(sent_en)有时可以在列'G'和'A'之间进行划分,而不是send_en的所有数据都在列'G'中。如果您将“替换”下面的数据复制到LibreOffice Calc中,您将更好地了解我的意思。我只是想不出来,如果有人可以帮助我,我真的很感激。谢谢。
这是链接https://regex101.com/r/m3yySN/2/
^
(?<frequency>[0-9]+) \W+
(?<word>\pL+\W?) \h+
(?<gender> [\pL()]+ (?:, \h* [\pL()]+)* ) \h+
(?<word_en> [^•]*[^•\s]) \h* \R
• \h*
(?<sent_esp> [^–]*[^\s–] ) \s*–\s*
(?<sent_en> .* (?:\R .*)*? ) \h* \R
(?<num1> [0-9]+) \h* \| \h*
(?<num2> .*\S)
\1\t\2\t\3\t\4\t\5\t\6\t
这个有点毛茸茸,但毕竟只需要一个小调整:
^
(?<frequency>[0-9]+) \W+
(?<word>\pL+(?:,\h\pL+|\W)*) \h+
(?<gender> [\pL()]+ (?:, \h* [\pL()]+)* ) \h+
(?<word_en> [^•]*[^•\s]) \h* \R
• \h*
(?<sent_esp> [^–]*[^\s–] ) \s*–\s*
(?<sent_en> .* (?:\R .*)*? ) \h* \R
(?<num1> [0-9]+) \h* \| \h*
(?<num2> .*\S)
Results现在看起来很好。