检查字符串是不是包含破折号并在单词中添加双引号
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
【问题讨论】:
你想用-123
和123-
或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"
【讨论】:
以上是关于检查字符串是不是包含破折号并在单词中添加双引号的主要内容,如果未能解决你的问题,请参考以下文章