如何使用正则表达式获取关键字前后的特定内容
How can get specific content before and after a Key word using Regex
我有数据:
P.C 115 P.B 372 第 2 页,共 2 页
订阅号123456
服务详情账单期
SingleBill 教育计划-学校学院 500Mb 500MO 从 01/11/2021 到 30/11/2021
静态 IP 1 从 01/11/2021 到 30/11/2021
仅限本地从 01/11/2021 到 30/11/2021
固网供应从 01/11/2021 到 30/11/2021
折扣
静态 IP 100% 租金折扣
订阅号763848
服务详情账单期
SingleBill Educ 计划-Schools College 300Mb 200AB 从 01/11/2021 到 30/11/2021
固网供应从 01/11/2021 到 30/11/2021
我想获取每个订阅者的“订阅者编号”和相应的“折扣”,其中“折扣”可用。
有没有可能使用正则表达式的方法。
我在 UiPath 中使用 PDF 活动来读取 PDF 中的文本。
'Read PDF' activity 正在返回一个 String。
然后,我正在尝试编写正则表达式来获取 Subscriber Number
和 Discount description
,其中 Discount 符合条件使用 look ahead 和 look在正则表达式中落后。
我正在尝试 (?<=Subscriber Number)(.*)(?=\n)
,我能够捕获 Subscriber Number
,但不能捕获 Subscriber Number
和换行符之间的文本。
您可以使用
捕获这两个值
(?m)^Subscriber\s+Number\s+(\d+)(?:\r?\n(?!Discounts).+)*\r?\nDiscounts\s+(.+)
见regex demo。 详情:
(?m)^
- 行首
Subscriber\s+Number\s+
- Subscriber
,一个或多个空格,Number
,一个或多个空格
(\d+)
- 第 1 组:一个或多个数字
(?:\r?\n(?!Discounts).+)*
- 任意零次或多次重复
\r?\n
- 一个可选的回车 return 然后一个换行符 char
(?!Discounts).+
- 不以 Discounts
开头的非空行
\r?\n
- 一个可选的回车 return 然后一个换行符 char
Discounts
- Discounts
字符串
\s+
- 一个或多个空格
(.+)
- 第 2 组:换行字符以外的任何一个或多个字符。
我有数据:
P.C 115 P.B 372 第 2 页,共 2 页
订阅号123456
服务详情账单期
SingleBill 教育计划-学校学院 500Mb 500MO 从 01/11/2021 到 30/11/2021
静态 IP 1 从 01/11/2021 到 30/11/2021
仅限本地从 01/11/2021 到 30/11/2021
固网供应从 01/11/2021 到 30/11/2021
折扣
静态 IP 100% 租金折扣
订阅号763848
服务详情账单期
SingleBill Educ 计划-Schools College 300Mb 200AB 从 01/11/2021 到 30/11/2021
固网供应从 01/11/2021 到 30/11/2021
我想获取每个订阅者的“订阅者编号”和相应的“折扣”,其中“折扣”可用。 有没有可能使用正则表达式的方法。
我在 UiPath 中使用 PDF 活动来读取 PDF 中的文本。
'Read PDF' activity 正在返回一个 String。
然后,我正在尝试编写正则表达式来获取 Subscriber Number
和 Discount description
,其中 Discount 符合条件使用 look ahead 和 look在正则表达式中落后。
我正在尝试 (?<=Subscriber Number)(.*)(?=\n)
,我能够捕获 Subscriber Number
,但不能捕获 Subscriber Number
和换行符之间的文本。
您可以使用
捕获这两个值(?m)^Subscriber\s+Number\s+(\d+)(?:\r?\n(?!Discounts).+)*\r?\nDiscounts\s+(.+)
见regex demo。 详情:
(?m)^
- 行首Subscriber\s+Number\s+
-Subscriber
,一个或多个空格,Number
,一个或多个空格(\d+)
- 第 1 组:一个或多个数字(?:\r?\n(?!Discounts).+)*
- 任意零次或多次重复\r?\n
- 一个可选的回车 return 然后一个换行符 char(?!Discounts).+
- 不以Discounts
开头的非空行
\r?\n
- 一个可选的回车 return 然后一个换行符 charDiscounts
-Discounts
字符串\s+
- 一个或多个空格(.+)
- 第 2 组:换行字符以外的任何一个或多个字符。