【发布时间】:2022-09-23 01:26:56
【问题描述】:
这是字符串:\"WATERMARK(\'Hello!\')\"
我要提取的是\"Hello!\",不包括\"WATERMARK\" 和括号(\'Hello!\',可以是任何东西,所以我需要从这里提取文本,最后我需要替换WATERMARK(\'\'),其中没有任何内容原始字符串)
我怎样才能做到这一点?
-
有多少东西可以是什么东西?还可以包含括号吗?多引号?在这种情况下,事情变得更加困难。否则,您可以使用正则表达式,例如
WATERMARK\\(\'(?<content>.*?)\'\\)来捕获WATERMARK(\'和第一个\')之间的所有内容。或 ``WATERMARK(\'(?<content>.*)\')` 捕获所有内容,直到最后一个\') -
如果值可以包含 \")\",则使用文本解析而不是正则表达式可能会更好。
-
也许
Split上\',只要列表计数是3 的倍数,列表中的奇数条目将在\'标记之间。 -
单引号也可以是双引号,所以它也可以是 WATERMARK(\"Hello!\") 或 WATERMARK(\'Hello!\') 甚至 WATERMARK\'Hello!\' 或双引号 WATERMARK\"Hello! \"
标签: c#