【问题标题】:Use regular expression to match "≈"使用正则表达式匹配“≈”
【发布时间】:2014-11-12 06:36:36
【问题描述】:

我想使用正则表达式 O.\w*≈\b (在 c#,.NET Framework 4.0 中)来匹配像 "O.Hasdaas≈" 这样的字符串,但它失败了。但是,如果我用它来匹配 "O.Hasdaas≈abc" ,它可以识别 "O.Hasdaas≈" 。有谁知道为什么会这样?

【问题讨论】:

  • 乍一看,它似乎与单词边界有关。使用(?:$|\b) 会发生什么情况,它将匹配输入结束字边界,而不仅仅是\b
  • 给定“O.Hasdaas≈abc”作为输入,您希望匹配失败吗?请记住,如果正则表达式在输入字符串中的任何位置找到该模式,它就会匹配。如果你想匹配整个输入字符串,你应该使用 "^O.\w*≈$" 作为你的正则表达式。
  • @user2864740 是的,这行得通,谢谢!
  • @JoelLee 我想在“O.Hasdaas≈abc”中匹配“O.Hasdaas≈”

标签: c# regex c#-4.0


【解决方案1】:

由于正则表达式末尾的单词边界\b 而失败。单词边界不消耗任何字符,它断言一侧有一个单词字符,而另一侧没有。

如果您想匹配O.Hasdaas≈ 而不是O.Hasdaas≈abc,您可以使用非单词边界。

O\.\w*≈\B

或者您可以简单地删除单词边界以匹配您的两个示例。

O\.\w*≈

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 2011-05-01
相关资源
最近更新 更多