用于在数字模式和冒号或换行符之间提取字符串的正则表达式
Regex to extract string between digit pattern and colon or newline
我必须在数字模式和冒号或换行符(第一次出现)之间提取字符串
我的字符串看起来像:
05-30-1306-29-13 BUILDERS RISK:
LIMITS/DEDUCTIBLES:
我想提取 BUILDERS RISK。可能有也可能没有冒号,在这种情况下我们将换行符视为终止模式
这是我到目前为止的想法
\d{2}-\d{2}-\d{4}-\d{2}-\d{2}\s*\W+[^:|\n]+:\s*
数字模式将始终为 2-2-4-2 后跟任何字符串,后跟 \n 或 :
到目前为止,正则表达式满足了我的需要,但我不知道如何将它分成不同的匹配项,以便我可以进行第二个匹配项
1st match - digit pattern
2nd match - what i need
3rd match - colon or newline
任何指点都会有所帮助。
更新:要搜索的文本术语的几个备选方案可能是这个
11-06-1212-29-12 DWELLING FIRE (DP-3): ANNUAL RENTAL
11-05-1212-26-12 HOMEOWNERS (HO-3): SECONDARY HOME
我只想要冒号之前的任何内容,或者如果不存在,则使用字符串直到找到换行符。作为旁注,重要的文本可能不会出现在同一行中,而是出现在下一行中,但在同一行中始终跟在冒号或换行符之后。
PS:提取的文本不应包含冒号
看来你可以使用
\b(\d{2}-\d{2}-\d{4}-\d{2}-\d{2})\W+(.*?)(:?\r?\n\s*)
看到 regex demo 屈服
详情
\b
- 单词边界(如果数字可以粘贴到字母或下划线,则更改为 (?<!\d)
)
(\d{2}-\d{2}-\d{4}-\d{2}-\d{2})
- 第 1 组:两位数字,-
,两位数字,-
,四位数字,-
,两位数字,-
,两位数
\W+
- 1+ 个非单词字符(保留在线,替换为 [^\w\r\n]+
)
(.*?)
- 第 2 组:除换行符外的任何零个或多个字符,尽可能少
(:?\r?\n\s*)
- 第 3 组:一个可选的 :
,一个可选的 CR,一个 LF 符号,然后是任何 0+ 空白字符。
我必须在数字模式和冒号或换行符(第一次出现)之间提取字符串
我的字符串看起来像:
05-30-1306-29-13 BUILDERS RISK:
LIMITS/DEDUCTIBLES:
我想提取 BUILDERS RISK。可能有也可能没有冒号,在这种情况下我们将换行符视为终止模式
这是我到目前为止的想法
\d{2}-\d{2}-\d{4}-\d{2}-\d{2}\s*\W+[^:|\n]+:\s*
数字模式将始终为 2-2-4-2 后跟任何字符串,后跟 \n 或 :
到目前为止,正则表达式满足了我的需要,但我不知道如何将它分成不同的匹配项,以便我可以进行第二个匹配项
1st match - digit pattern
2nd match - what i need
3rd match - colon or newline
任何指点都会有所帮助。
更新:要搜索的文本术语的几个备选方案可能是这个
11-06-1212-29-12 DWELLING FIRE (DP-3): ANNUAL RENTAL
11-05-1212-26-12 HOMEOWNERS (HO-3): SECONDARY HOME
我只想要冒号之前的任何内容,或者如果不存在,则使用字符串直到找到换行符。作为旁注,重要的文本可能不会出现在同一行中,而是出现在下一行中,但在同一行中始终跟在冒号或换行符之后。
PS:提取的文本不应包含冒号
看来你可以使用
\b(\d{2}-\d{2}-\d{4}-\d{2}-\d{2})\W+(.*?)(:?\r?\n\s*)
看到 regex demo 屈服
详情
\b
- 单词边界(如果数字可以粘贴到字母或下划线,则更改为(?<!\d)
)(\d{2}-\d{2}-\d{4}-\d{2}-\d{2})
- 第 1 组:两位数字,-
,两位数字,-
,四位数字,-
,两位数字,-
,两位数\W+
- 1+ 个非单词字符(保留在线,替换为[^\w\r\n]+
)(.*?)
- 第 2 组:除换行符外的任何零个或多个字符,尽可能少(:?\r?\n\s*)
- 第 3 组:一个可选的:
,一个可选的 CR,一个 LF 符号,然后是任何 0+ 空白字符。