如何添加空格和标点符号以使用正则表达式捕获第一组?如何在 LibreOffice 中停止某些选项卡分为两列?
Posted
技术标签:
【中文标题】如何添加空格和标点符号以使用正则表达式捕获第一组?如何在 LibreOffice 中停止某些选项卡分为两列?【英文标题】:How to add whitespace & punctuation marks to capture first group with regex? How to stop certain tabs dividing into two columns within LibreOffice? 【发布时间】:2017-12-23 20:53:17 【问题描述】:谁能帮帮我。一直试图让这个正则表达式工作,它几乎就在那里。他们似乎都是正确的,但第一个应该是:
单词:el,la 性别:艺术 word_zh: (+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”列之间进行划分,而不是 sent_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
【问题讨论】:
您需要在实际问题中包含所有代码(复制/粘贴)。可以使用指向第三方服务的链接作为示例,但不应要求您理解该问题。如果链接更改/被删除,这个问题对未来的访问者将毫无用处。请阅读:How to create a Minimal, Complete, and Verifiable example 和 How do I ask a good question? 一个后续问题发布在ask.libreoffice.org/en/question/141538/…。 【参考方案1】:这个有点毛,但毕竟只需要一点点调整:
^
(?<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 我现在看起来不错。
【讨论】:
嘿,非常感谢。感谢您的帮助。以上是关于如何添加空格和标点符号以使用正则表达式捕获第一组?如何在 LibreOffice 中停止某些选项卡分为两列?的主要内容,如果未能解决你的问题,请参考以下文章