微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式区分 first 和 street c# regex.replace

如何解决正则表达式区分 first 和 street c# regex.replace

我有以下数据:

123ST
89ST
101ST
1ST
TEST

我想区分 first 和 street,然后在最后一个字符不包含 1 的情况下放置一个空格。

Add Space:

123 ST
89 ST

Do not modify:

101ST
1ST
TEST

这是我目前所知道的,但还没有找到解决方案:

address = Regex.Replace(address,@"\sst"," ");

注意:不应像测试示例中看到的那样修改非数字数据。

解决方法

你可以使用

address = Regex.Replace(address,@"(?<=[02-9])ST$"," $&");
// Or,if `ST` appears in the start/middle of the string and is at the end of a "word"
address = Regex.Replace(address,@"(?<=[02-9])ST\b"," $&");

参见.NET regex demo

正则表达式匹配

  • (?<=[02-9]) - 与紧跟在 0 数字或 29 范围内的数字前面的位置匹配的正向后视
  • ST - ST 子串
  • $ - 字符串结束和
  • \b - 一个词边界。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。