php 匹配一个特定字符链REGEX后的多个相同匹配项

vlju58qv  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(152)

感谢所有愿意帮助我的人。我努力制作了一个正则表达式来处理这个问题:

  • 我要每一场比赛的“小时Pleine Saison Basse”发生在第一次出现的“Acheminement conso”之后。*

使用下面的原始文本,我想匹配“Heure Pleine Saison Basse”3 5 6 7而不是1 & 2。

不要在字符识别中使用数字,它只是用来帮助您了解要匹配的链

此示例正则表达式仅匹配最后一个匹配项:

Acheminement[\s\S]*(Heure Pleine Saison Basse)

下面是一个很棒的原始文本示例:

Electricité n° de\n
compteur ancien\n
index nouvel\n
index conso\n
kWh/Qté prix unitaire\n
HT en euros montant HT\n
en euros taux de\n
TVA\n
Contribution cee du 14/07/22 au 13/08/22 143020,00495 70,7920,0%\n
Evolutions arenh du 14/07/22 au 13/08/22 14302-0,03149 -450,3720,0%\n
Consommation  du 14/07/22 au 13/08/22 154\n
Heure Pleine Saison Basse 1
Heure Pleine Saison Basse 2
Heure Creuse Saison Basse 2
Acheminement conso\n
kWh/Qté prix unitaire\n
HT en euros montant HT\n
en euros taux de\n
TVA\n
Composante de comptage du 1
Composante de comptage du 2
Composante de soutirage du 1
Composante de soutirage du 2
Composante de gestion 1
Composante de gestion 2
Consommation du 14/07/22 au 31/07/22 Heure Pleine Saison Basse 56200,02000 112,4020,0%\n
Heure Creuse Saison Basse 26840,01700 45,6320,0%\n
Consommation du 01/08/22 au 13/08/22\n
Heure Pleine Saison Basse 3
Heure Creuse Saison Basse 4
Heure Pleine Saison Basse 5
Heure Pleine Saison Basse 6
Heure Pleine Saison Basse 7
Services et prestations techniques conso\n
kWh/Qté prix unitaire\n
HT en euros montant HT\n
en euros taux de\n
TVA\n
Espace Client Gratuit\n
Taxes et Contributions conso\n
oyt4ldly

oyt4ldly1#

您可以使用

'/(?:\G(?!\A)|Acheminement conso)[\s\S]*?\KHeure Pleine Saison Basse/u'
'/(?:\G(?!\A)|Acheminement conso).*?\KHeure Pleine Saison Basse/su'

请参见regex demo。* 详细信息 *:

  • (?:\G(?!\A)|Acheminement conso)-Acheminement conso或上一匹配的结尾(\G(?!\A)匹配\G operator匹配的内容,但字符串开头的位置除外,该位置被(?!\A)负前瞻“取消”)
  • [\s\S]*?-尽可能少的零个或多个字符
  • \K-omit the text目前匹配
  • Heure Pleine Saison Basse-固定字符串。

当你必须处理Unicode字符串时,u标志是必需的。s标志对于使.匹配包括换行符在内的任何字符是有用的。

相关问题