【发布时间】:2010-10-23 21:27:54
【问题描述】:
使用带有以下表达式的 System.Text.RegularExpressions 来匹配所有用 # 包裹且仅包含文本(无空格等)的标记
#([a-zA-Z]+)#
以及下面的测试字符串
text #test# text #test1# text
我只得到一场比赛。我在正则表达式中做错了什么?
【问题讨论】:
使用带有以下表达式的 System.Text.RegularExpressions 来匹配所有用 # 包裹且仅包含文本(无空格等)的标记
#([a-zA-Z]+)#
以及下面的测试字符串
text #test# text #test1# text
我只得到一场比赛。我在正则表达式中做错了什么?
【问题讨论】:
您可以使用Matches() 方法,该方法返回所有匹配项的集合。
此外,A-Z 并不是一个很好的文本解决方案(实际上#test1# 中的 1 将不匹配!!!),因为它不包含任何扩展字符,例如 éàèöäü 等 - 你可以想查看匹配单词字符的\w,或者查看匹配任何语言的任何字母的\p{L}。
编辑:也许这会更好地满足您的需求:
#([^\s#]+)#
【讨论】:
它只会匹配第一个项目
使用NextMatch()函数
【讨论】: