当连字符仅存在于带有正则表达式的第一行时,在第二行添加缺少连字符

Add Missing Hyphens on second line when hyphen only exists on first line with regex

提问人:Hank K 提问时间:9/22/2022 最后编辑:Hank K 更新时间:9/22/2022 访问量:37

问:

当连字符仅存在于第一行时,需要在第二行添加缺少的连字符:

24
00:03:01,848 --> 00:03:04,893
- How adorable.
[both laughing]

48
00:02:53,798 --> 00:02:54,758
[clears throat]

49
00:02:57,552 --> 00:02:59,971
- [clears throat] Phil.
What can I get you?

168
00:07:01,421 --> 00:07:03,048
Really?
- If that's possible, yeah.

169
00:07:03,089 --> 00:07:04,007
- Really?
- Mm-hmm.

以下是我认为可能有效的[不抽雪茄]:

Find:       ^([- ])(?=.*\r?\n([A-Za-z\[]))
Replace:    - $1

正确的最终结果如下,两行都有连字符:

24
00:03:01,848 --> 00:03:04,893
- How adorable.
- [both laughing]

48
00:02:53,798 --> 00:02:54,758
[clears throat]

49
00:02:57,552 --> 00:02:59,971
- [clears throat] Phil.
- What can I get you?

提前致谢,汉克

正则表达式

评论

0赞 bobble bubble 9/22/2022
更多想法:替换^(-.*\n)(?![\s-])$1-

答:

1赞 Andrej Kesely 9/22/2022 #1

尝试 (regex101):

^(-\s+.*?)^([^-])

带有标志 MULTILINE 和 SINGLELINE。替换是字符串:

$1- $2

评论

0赞 Hank K 9/22/2022
这个没找到?
2赞 Barmar 9/22/2022 #2

您要匹配以 a 开头的行,后跟不以 开头行。使用否定性展望来实现“不以”标准开头。--

然后,您要在匹配的任何内容的末尾添加 a。-

查找:替换:^-.*$\r?\n(?!- )(?=.)$0-

演示

评论

0赞 Hank K 9/22/2022
对不起,脑子放屁了,不习惯这个留言板的工作方式。您的解决方案效果很好。.谢谢一堆