检查字符串是不是包含破折号并在单词中添加双引号

Posted

技术标签:

【中文标题】检查字符串是不是包含破折号并在单词中添加双引号【英文标题】:Check if string contains dash and add double quotes to the word检查字符串是否包含破折号并在单词中添加双引号 【发布时间】:2021-10-11 01:09:03 【问题描述】:

我想检测字符串是否包含破折号并在单词的开头和结尾添加双引号。如果只有破折号,我们应该跳过它。此外,如果仅包含数字,则应替换带有破折号的单词。

输入:test-dash - 很好的例子 123-123 输出:test-dash - 很好的例子“123-123”

到目前为止,我有像 \S*[0-9]+\S* 这样的正则表达式,但它匹配 7 个位置。 语言:C#

更新:当前版本:https://regex101.com/r/RKgDXE/1

【问题讨论】:

你想用-123123-1-2-3-4这样的引号字符串换行吗? 【参考方案1】:

只需使用带有模式的Regex.Replace 方法:(\d+-\d+)

模式说明:

(...) - 捕获组

\d+ - 匹配一个或多个数字

- - 从字面上匹配破折号

代码示例:

var parsedString = Regex.Replace("test-dash - good example 123-123", @"(\d+-\d+)", "\"$1\"");

【讨论】:

【参考方案2】:

试试下面的代码:

string pattern = @"\d+[-]\d+$";
string input = "test-dash - good example 123-123";
string output = Regex.Match(input, pattern).Value;
Console.WriteLine(input.Replace(output, string.Format("\"0\"", output)));

// output
// test-dash - good example "123-123"

【讨论】:

以上是关于检查字符串是不是包含破折号并在单词中添加双引号的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含双引号的字符串添加到 sql 数据库?

如何在vba中的字符串中添加双引号?

MS SQL Server 在空格上拆分单词,但仅在不在双引号中时

搜索字符串并在表中插入值

如何防止 LaTeX 连字符包含破折号的单词?

如何用撇号替换字符串中的双引号(不是指定它是字符串的外部双引号)