【问题标题】:Regex: Split String with repeated end pattern正则表达式:具有重复结束模式的拆分字符串
【发布时间】:2017-04-25 09:55:45
【问题描述】:

对字符串进行了少量更新,因为我在第一次没有清楚地表达问题陈述。

我有一个字符串:'( 5m 3s ) John: Hi <br> Hello <br>( 6m 2s ) Jane: Hello<br>'

我正在尝试匹配字符串以将每条消息提取为 1 行。

1st group: ( 5m 3s ) John: Hi <br> Hello <br>
2nd group: ( 6m 2s ) Jane: Hello<br>

有人可以为此提供关于正则表达式的建议吗? 这是我目前正在尝试使用的,我无法说出正则表达式中的最后一个中断:

(.*?).*?:.*?&lt;br&gt;

【问题讨论】:

  • 编程语言是什么?
  • 顶点。尝试使用正则表达式提出模式

标签: regex apex


【解决方案1】:

我认为,实际的分隔符模式是“&lt;br&gt; 后跟一个左圆括号”。

匹配“后跟...”的通用方法是使用正向前瞻结构 ((?=...)):

\(.*?\).*?:.*?<br>(?=\(|$)

这里我们限制我们的 &lt;br&gt; 仅在其后跟 ( 或字符串结尾时匹配。

还请注意括号应该被转义;否则,他们会定义一个捕获组(或其他一些特殊的正则表达式构造,具体取决于开头之后的内容。)

演示:https://regex101.com/r/YBay3w/1

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多