短代码正则表达式
本文关键字:正则表达式 代码 | 更新日期: 2023-09-27 18:16:18
我编写了一个正则表达式来匹配类似于以下格式的短代码:
[playername Le'Veon Bell]
下面是正则表达式:
'[playername's+(?<name>['w '-'''’]+)'s*']
我知道正则表达式正在与球员名称中的单引号作斗争。我已经在这里测试了正则表达式,它似乎可以工作,但当我从我的web应用程序运行代码时,没有找到匹配。
根据您提供的信息,我相信'[playername's+(?<name>[^]]+?)'s*']
应该可以工作。
唯一真正的区别是在捕获组[^]]+
中,它匹配任何不是]
的字符。这将有效地捕获[playername
之后的任何内容,直到第一个 ]
。
您可以使用以下正则表达式:
'[playername's+(?<name>.*?)'s*']
现场演示
在本例中,您不需要转义出现在字符类中的-
、'
符号。
Regex rgx = new Regex(@"'[playername's+(?<name>['w '’-]+?)'s*']");
IDEONE
在不了解更多关于您的场景的情况下,很难确定,但是根据您所拥有的,我想说您应该切换到更像这样的东西?
'[playername's+(?<name>[^']'s]*)'s+']
将匹配任何没有方括号或空格的内容,这看起来就像你想要做的。我个人很想删除空格条件,只是因为名称中可能有空格。无论你的语言版本是c#的string.Trim()
,你都可以将其称为post-facto。