这是字符串:
[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)?
-randstr
或randstrFixed
:\s*
-一个冒号和0+空格[^][|]*
-0+字符,但[
,]
和|
除外\|
-一个|
char [^][]*
-[
和]
之外的0个字符,\s*
-一个逗号和0+空格\d+-\d+
-1位数以上,-
,1位数以上]
-一个]
字符。 关于regex - 正则表达式如何设置任意数量的字符,但需要 '|'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61389523/