regex - 正则表达式如何设置任意数量的字符,但需要 '|'?

标签 regex go

这是字符串:

[randstr: sdfsdfds|dsfsdf sdfds 43rew|fds, 1-1]

此字符串可能出现在文本中。这是我尝试的正则表达式:
`\[(randstr|randstrFixed):(\s+)?\|(.+)(\s+)?,(\s+)?[\d]+-[\d]+]`

设置为以下模式的主要目标:sdfsdfds|dsfsdf sdfds 43rew|fds-这里可以是任何字符,但至少有一个'|'是必须的。这样的要求是因为在文本中可能会出现另一个类似[randstr: A-Z, 2-4]的字符串

更多说明:

https://regex101.com/r/1BNzA4/2/-这是@WiktorStribiżew的示例文本和正则表达式

您可以更改文本,现在“模式”从[->开始,因此在正则表达式中我必须告诉它[->必须更改。

最佳答案

您可以使用

\[randstr(?:Fixed)?:\s*[^][|]*\|[^][]*,\s*\d+-\d+]

RE2 regex demo

详细信息
  • \[-一个[ char
  • randstr(?:Fixed)?-randstrrandstrFixed
  • :\s*-一个冒号和0+空格
  • [^][|]*-0+字符,但[]|除外
  • \|-一个| char
  • [^][]*-[]之外的0个字符
  • ,\s*-一个逗号和0+空格
  • \d+-\d+-1位数以上,-,1位数以上
  • ]-一个]字符。
  • 关于regex - 正则表达式如何设置任意数量的字符,但需要 '|'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61389523/

    相关文章:

    amazon-web-services - golang in goland kinesis.GetRecordsInput is not found while 方法是?

    go - 在 Golang 中导入 _ "lib/math"是什么?

    regex - PostgreSQL - 使用 regexp_split_to_table 将单词 (len>1) 拆分为行

    ios - 如何在 swift 中允许电子邮件字符串中存在空格?

    javascript - 由正则表达式文字创建的 RegExp 对象共享一个实例?

    json - Bleve 命令行示例

    go - 我如何在golang中转换指针类型

    javascript - 对 JavaScript RegExp 进行逆向工程

    javascript - 使用 javascript 进行正则表达式验证

    pointers - 隐藏 nil 值,理解为什么 golang 在这里失败