【发布时间】:2021-09-09 19:22:57
【问题描述】:
我正在使用 LibreOffice 的 Calc 正则表达式函数从不同的字符串中仅捕获公司名称。一个 Calc 的单元格仅包含一个字符串。这些字符串的结构如下:
C.H. Robinson o/Vienna SZO13G9、SZO6P34、Roger Moor
Bus Trans Mouse PT513AA、Anthony Hopkins
P.H.U TRI-POL ZMI14A8
Mank WXL89040,杰瑞德·莱托
每个字符串总是以公司名称开头,除字母外还可以包括点、空格数(但不总是)、斜线符号。
名称后跟车牌号 - 以大写字母 (2+) 开头,然后是数字 (1+),然后是(但不总是)大写字母(0+),然后是(但不总是)数字(0 +)
有时在逗号之后是第二个车牌,然后是(但不总是)有姓名和姓氏。
很快-我想从字符串的开头到第一个车牌号捕获部分字符串,不包括前面的空格符号。我已经用粗体标记了我想要捕捉的部分。
我试过这个:/(.+)\s[A-Z]+[0-9]+[[A-Z]+]?[[0-9]+]?/gm
但它不起作用。
在许多情况下它都可以工作,感谢@Hitesh,但仍然有一些情况不起作用:例如
ŁUKASZ MAZIAR RDE66658、RDE0542P、Taras Stolbowski
MULTIBLOB AR7238N, KR5P543, Jacek Stasiuk
Mir-Trans WSI66671, WSI1671M, Stanisław Szymański
MIFESTA SPÓŁKA AKCYJNA SJ1083T, WSI71321, STANISŁAW BOBROWSKI 有时公司名称包括波兰字母。到目前为止,我使用[\s\p{L}]+ 与他们打交道,但不知道在这种情况下如何使用它。
【问题讨论】:
标签: regex libreoffice libreoffice-calc