gpt4 book ai didi

ruby - 正则表达式不匹配带括号的新行

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:53 33 4
gpt4 key购买 nike

我有这段文字:

@Heurtebise (Il ramasse son sac)
Vous regretterez de m'avoir fait du mal.

(Silence.) Vous me chassez ?

@Eurydice
Le mystère est mon ennemi. Je suis décidée à le combattre.

oui oui.

我想要 2 组的 2 场比赛,我想要的结果是:

Match 1
1. @Heurtebise (Il ramasse son sac)
2. Vous regretterez de m'avoir fait du mal.

(Silence.) Vous me chassez ?

Match 2
1. @Eurydice
2. Le mystère est mon ennemi. Je suis décidée à le combattre.

oui oui.

而且我不明白为什么我的正则表达式:/^(\@.+)$([^(\@|\#)]+)/ 与第 4 行开头不匹配通过括号。这是我得到的结果:

Match 1
1. @Heurtebise (Il ramasse son sac)
2. Vous regretterez de m'avoir fait du mal.

Match 2
1. @Eurydice
2. Le mystère est mon ennemi. Je suis décidée à le combattre.

oui oui.

请注意它是如何跳过 (Silence.) Vous me chassez ? in match 1 行的。不明白为什么!

在此处查看完整案例:http://rubular.com/r/RR2eDc4ZBQ

有人可以帮忙吗?谢谢。

最佳答案

你可以使用

/^(@.+)((?:\R(?![@#]).*)*)$/

参见 regex demo .它将匹配任何以 @ 开头的行,然后匹配所有不以 @# 开头的连续行。

详情

  • ^ - 行首
  • (@.+) - 第 1 组:@ 和该行的其余部分
  • ((?:\R(?![@#]).*)*) - 第 2 组:0 次或多次出现:
    • \R(?![@#]) - 换行符序列后没有 @#
    • .* - 行的其余部分
  • $ - 行尾(虽然不需要)。

关于ruby - 正则表达式不匹配带括号的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52644280/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com