在此示例文本中,我需要提取城市和日期,但由于我是从 ITSM 工具运行它,所以我只能访问 regexReplace 函数,这意味着我需要一个匹配 除 这两个元素之外的所有内容的正则表达式
First line of text
Second line I only need the last word before the dot London.
Here i only want the date 11-11-2023.
Goodbye
我能够将除日期之外的所有内容与
[^\d-]
匹配。
为了匹配城市名称,我得到了这个:
\w+(?=\.)
,但也匹配年份(上面示例中的 2023 年)。由于城市单词来自 5-6 个可能城市的已知列表,因此类似 London|Rome|Paris|Lima
的内容可以使用,但仍然需要一种方法来“反转”匹配。
期望的输出是
London - 11-11-2023
假设您有前瞻性支持:
消极向前看(不是
abc
、def
或 ghi
)
^(?!.*(abc|def|ghi)).*
正向前看(必须匹配
abc
、def
或 ghi
中的任何一个)
^(?=.*(abc|def|ghi)).*
所以,就你而言:
^(?!.*([[0-9-]\.$))(?=.*([A-Za-z]+\.$)).*
这意味着最后一个
.
之前不能包含一个或多个整数,最后一个 .
之前必须包含字母(大写(可选)和小写)。