特定字符串样式的正则表达式匹配(特定字符之间有数字和字符串【】)

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

我想制作一个与以下引用匹配的正则表达式。

【digit(s)†strings】 or 【digit(s):digit(s)†strings】

以下是正则表达式应匹配的一些示例:

【4†BD Vid Texts for it 091224.docx】
【4:1†xShort Dashboard Texts.pdf】
【40†source】
...

我发现了一个正则表达式可以与上面的最后一个一起使用。但它不适用于其他人。
【\d+(:\d+)?+†来源】

澄清一下,当 API 调用时,我得到如下响应,我想从结果中删除这些特殊引用。

Lorem Ipsum Lorem Ipsum 【4†BD Vid Texts for it 091224.docx】 .
Lorem Ipsum 【40†source】 .

我想要的结果如下所示。

Lorem Ipsum Lorem Ipsum.
Lorem Ipsum.

@cyberbrain 建议使用这个正则表达式。谢谢你的 建议。
【.*?】

但是,这对我不起作用。我不想删除所有
【 】
字符串。引文的结构是我作为示例添加的。它在
之间包含特定字符
【 】
,并且在
之前有数字或数字:数字,并且除了空格、
_
. 之外没有任何特殊字符
之后



以下是一些不起作用的示例。

【4A†ABC ABC】

在上面的示例中,字符串在

A
之前有字符
之前的字符串应该只是
number(s)
number:number
,例如
4†
4040†
40:1†
。所以,
4@5†
4ABC5†
4$ABC#5†
或类似的东西是行不通的。

【4:1ABC ABC】

在上面的示例中,它没有

。它应该包括

【45†ABC @#$ 123 ABC】

在上面的示例中,

之后的字符串包含特殊字符。
.
之后不应包含任何特殊字符(
除外)。
.
之后只能包含特殊字符中的

希望正则表达式能够匹配所有正确的引用案例。

regex
1个回答
0
投票

你可以使用

【\d+(?::\d+)?†[\w\s.]*】

请参阅 正则表达式演示

详情

  • - 一个
    字符
  • \d+
    - 一位或多位数字
  • (?::\d+)?
    - 可选的
    :
    序列和一个或多个数字
  • - 一个
    字符
  • [\w\s.]*
    - 零个或多个字母、数字、
    _
    、空格或
    .
    字符
  • -
    符号。
© www.soinside.com 2019 - 2024. All rights reserved.