如何匹配带有空格的短连字符前后的文本字符串

问题描述 投票:0回答:1

我的心将继续 - 席琳迪翁
我的心将继续 - 席琳迪翁
我的心将继续 - 席琳迪翁
我的心将继续 - 席琳·迪翁
我的心将继续——席琳·迪翁
我的心将继续 - 席琳·迪翁

这就是我的示例字符串。每行必须包含一个短连字符。并且短连字符之前或之后的空格可以是任意数量的空格,即使某些行在短连字符之前或之后没有空格。我需要从每一行匹配 2 组字符串。

My heart will go on
Celine Dion
。那么哪个正则表达式可以做到这一点?

/(.*)(\s\-\s)(.*)/gm
当短连字符前后有一个空格时,此正则表达式可以匹配
^(.*?)[\p{Zs}\t]+-[\p{Zs}\t]+(.*)
此正则表达式可以匹配短连字符前后任意数量的空格。但是当短连字符之前或之后没有空格时就会出现问题。

regex jscript
1个回答
0
投票

以下模式似乎有效:

(.*?)(?:\s*-\s*)(.*)

此匹配:

  • (.*?)
    以下所有内容,但不包括
  • (?:\s*-\s*)
    可选空格、连字符和可选空格
  • (.*)
    所有剩余内容
© www.soinside.com 2019 - 2024. All rights reserved.