C# 正则表达式替换模式(替换字符串)返回 $1

标签 c# regex replace

我目前正在解析来自 SQL Server 的一些数据,我需要有关 Regex 的帮助。

我在 Sql Server 2005 中有一个程序集可以帮助我使用 C# Regex.Replace() 方法替换字符串。

我需要解析以下内容。

    Strings:

    CAD 90890

    (CAD 90892)

    CAD G67859

    CAD 34G56

    CAD 3S56.

    AX CAD 890990

    CAD 783783 MX

    Needed Results:

    90890

    90892

    G67859

    34G56

    3S56

    890990

    783783 

SELECT TOP 25 CADCODE, dbo.RegExReplace(CADCODE, '*pattern*', '$1')
FROM dbo.CADCODES
WHERE CADCODE LIKE '%CAD%'

我需要在 CAD 字之后获取后续字符串,直到它遇到空格或任何非数字或数字的内容。我设法得到了数字,但在其他人身上确实失败了。我正在努力让它发挥作用,但找不到真正的解决方案。

提前致谢。

已更新以反射(reflect)新字符串

AX 890990 加元

783783 墨西哥加元

最佳答案

试试这个:

(\w+)\W*$

模式匹配最后一个单词 - 由字母数字(和下划线)组成。
示例:http://www.rubular.com/r/1zWQQVLZy1

另一种选择是查找至少包含一个数字的单词 - 这个可以匹配字符串中的任何位置,因此您可能需要处理多个匹配项。在这种情况下,您可以在整个模式周围添加一个捕获组,或者使用 $& 替换。

[a-zA-Z_]*\d\w*

示例:http://www.rubular.com/r/XUrFNuPQUv

如果不能匹配(Regex.Match),必须使用Regex.Replace,可以从头到尾匹配整个字符串,用组替换你需要:

RegExReplace(CADCODE, '^.*\b([a-zA-Z_]*\d\w*)\b.*$', '$1')

关于C# 正则表达式替换模式(替换字符串)返回 $1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721199/

相关文章:

c++ - OpenCV 用另一个值替换特定像素值

javascript - 如何在 JavaScript 中使用 "a href"包装器搜索/替换文本?

c# - 在流中使用 SeekOrigin.Begin 时不支持指定的方法

c# - 无法将 [] 索引应用于 'System.Collections.Specialized.NameValueCollection' 类型的表达式

Java 正则表达式 : Why is the non-capturing group captured?

java - 正则表达式从字符串中删除不带 <br/> 制表符的 HTML 标签

jquery - 用 jquery 替换反斜杠

c# - 跨多个 c# 文件访问实例变量

c# - 了解多项目(可互操作).NET 解决方案中的配置文件

正则表达式测试字符串是否以 http ://or https://开头