用C#写一个正则替换,将字符串中 前后都为数字的小数点替换为“-”
时间: 2023-06-15 19:03:22 浏览: 134
可以使用 C# 中的正则表达式和 Replace 方法来实现这个替换操作。以下是示例代码:
```csharp
using System;
using System.Text.RegularExpressions;
class Program {
static void Main(string[] args) {
string input = "1.23 abc 4.56 789.0";
string pattern = @"(?<=\d)\.(?=\d)";
string replacement = "-";
string output = Regex.Replace(input, pattern, replacement);
Console.WriteLine(output);
}
}
```
输出:
```
1-23 abc 4-56 789.0
```
上面的代码中,使用了正则表达式 `(?<=\d)\.(?=\d)` 来匹配前后都是数字的小数点。其中 `(?<=\d)` 表示前面必须是数字,`(?=\d)` 表示后面必须是数字。然后使用 Replace 方法将匹配到的小数点替换为“-”。
相关问题
用C#写一个正则替换,将字符串中 前后都为数字的小数点和-替换为空
可以使用正则表达式中的零宽断言来匹配数字,并使用正则表达式的替换功能将匹配到的小数点和-替换为空。具体代码如下:
```csharp
string str = "1.23-4.56-7.89";
string pattern = "(?<=\\d)[.-](?=\\d)";
string replace = "";
string replacedStr = Regex.Replace(str, pattern, replace);
Console.WriteLine(replacedStr);
```
输出结果为:`123456789`。
解释一下代码:
- `str` 是要进行替换的字符串;
- `pattern` 是正则表达式,其中 `(?<=\d)` 和 `(?=\d)` 分别表示正向零宽后行断言和正向零宽先行断言,即匹配前后都是数字的小数点和-;
- `replace` 是替换成的字符串,这里为空字符串;
- `replacedStr` 是替换后的结果字符串。
希望这个例子可以帮到你。
C# 正则表达式匹配数字
在C#中,正则表达式是一种强大的文本处理工具,可以用于查找、替换和验证字符串模式。如果你想匹配数字,可以使用`Regex.IsMatch()`或`Regex.Match()`方法,并提供一个表示数字模式的正则表达式。以下是一些常见的数字匹配情况:
1. 匹配整数:`\d+` 或 `[0-9]+` - 这将匹配一串连续的数字,包括正负号。
2. 匹配浮点数:`\d+(\.\d+)?` 或 `[0-9]+(\.[0-9]+)?` - 匹配小数点后的数字也可以。
3. 匹配特定范围的数字:如`^(10|20|30)$` - 匹配固定的一组数值。
下面是一个示例:
```csharp
string input = "The price is 15.99";
bool isNumberMatched = Regex.IsMatch(input, @"\d+(\.\d+)?"); // 输出 true
int number;
if (int.TryParse(input, out number)) {
Console.WriteLine("It's an integer: " + number); // 如果输入的是整数
} else if (double.TryParse(input, out double number)) {
Console.WriteLine("It's a decimal: " + number); // 如果输入的是浮点数
}
```
阅读全文