繁体   English   中英

如何提取和替换具有特定格式的字符串?

[英]How to extract and replace a String with specific format?

我有输入字符串;

(rm01ADS21212, 'adfffddd', rmAdssssss, '1231232131', rm2321312322)

我想要做的是找到所有以“rm”开头的单词,并用 remove 函数替换它们。

(remove(01ADS21212), 'adfffddd', remove(Adssssss), '1231232131', remove(2321312322))

我正在尝试使用 replaceAll 函数,但我不知道如何在“rm”文字后提取部分。

statement.replaceAll("\\(rm*.,", "remove($1)");

有没有办法得到这些零件?

您尚未使用捕获组捕获任何子字符串,因此$1null

您可以使用

.replaceAll("\\brm(\\w*)", "remove($1)")

查看正则表达式演示

细节

  • \\b - 单词边界(仅在单词开头开始匹配)
  • rm - 文字部分
  • (\\w*) - 第 1 组:0+ 字字符(字母、数字或下划线)

替换模式中的$1代表组 1 值。

如果您想在rm之后匹配除逗号和空格以外的任何字符,请使用"\\\\brm([^\\\\s,]*)" ,请参阅此正则表达式演示

使用带有空字符串的“替换”。

例如;

string str = "(rm01ADS21212, 'adfffddd', rmAdssssss, '1231232131', rm2321312322)";
 Console.WriteLine(str.Replace("rm", ""));

输出:(01ADS21212,'adffffddd',Adsssss,'1231232131',2321312322)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM