正则表达式用于替换特定字符串

本文关键字:字符串 替换 用于 正则表达式 | 更新日期: 2023-09-27 18:12:31

我有一个如下格式的字符串:

tablename.colname > [[2 | prompt and text]] and tabname.colname < [[1000| prompt
 or text]]

我需要将'[[]]'中的文本替换为管道符号之前的值。现在,

i)我用AND和OR等逻辑运算符分割字符串(注意:这也分割了方括号内的'和',我真的不想要。)

ii)然后用数学运算符生成字符串。

谁能帮我找到一个正则表达式来查找双方括号之间的文本,并将其替换为管道符号之前的值…

管道前的值可以是整数或字符串。

正则表达式用于替换特定字符串

像这样应该可以工作

resultString = Regex.Replace(subjectString, @"('['[)(.*?)'|(.*?)(']'])", "$1$2$4", RegexOptions.Multiline);

输入:[[2 | prompt and text]] and tabname.colname < [[1000| prompt or text]]

输出:[[2 ]] and tabname.colname < [[1000]]

搜索

'['[([a-zA-Z0-9]+) ?'|.*?']']

替换为

(1美元)

点击这里查看

简要说明

'['[                 - The starting [[
([a-zA-Z0-9]+)       - Match any number of letters and digits (made a capturing group)
 ?                   - An optional space
'|                   - Pipe symbol
.*?                  - Match anything without been greedy
']']                 - Closing ]]