正则表达式 - 删除下划线和&符号

时间:2018-03-22 18:20:58

标签: c# regex

我的正则表达式应该允许a-z,A-Z,0-9,单引号('),空格(),问号(?),短划线( - ),句号(。)。

正则表达式看起来像这样。但是,它还将下划线,&符号标记为有效字符。

^[\.\w?\-' ]+$

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

扩展之前的答案, 如果您想匹配问题中所述的转义',那么您可以使用

^(?:[\.a-zA-Z0-9.-\? ]|')+$

它使用非捕获组(?:exp1|exp2)+来匹配exp1或exp2中的一个或多个,而不是匹配e或x或p或1或2中的一个或多个的[exp1exp2]+

你可以尝试here

答案 1 :(得分:1)

字符类中的

'将字面上匹配这些字符。要匹配',请按字面意思使用'

正如Srdjan M.评论的那样,\w相当于[a-zA-Z0-9_]

结果正则表达式:

^[a-zA-Z0-9.?\-' ]+$

在线试用here