使用正则表达式排除特定字符

12
尝试了很多办法,我仍然无法通过正则表达式来排除空格或单引号。
  • 允许字符串“abc”
  • 不允许:"a'bc","'","'abc","'''","abc''"等
  • 上述示例中的空格也可以替换为 '
  • 假定前导和尾随空格已被删除
  • 空字符串在其他地方检查
  • 目标语言是javascript

如果我在SQL中,我会使用PATINDEX。

或者,如果我能否定,就不会有空格或单引号的积极匹配……

我已经尝试过(仅适用于单引号)

  • \w*[^']\w*
  • ^\w*[^']\w*$
  • 其他我现在忘记了

请帮我解决这个问题,这样我今晚就可以睡觉了。

编辑:

  • 目标字符串将不会被引号括起来。我认为它可能会增加清晰度
  • 如果“目标语言是javascript”是错误的,则为c#。我必须检查我们确切执行验证的位置:客户端javascript还是服务器c#

正则表达式语言是什么?Python、Perl、C#、Java?它们都有微妙的不同。 - Christopher
测试字符串是否总是被双引号包围? - laz
4个回答

14

^[^\'\ ]*$
?


使用\s字符类来表示空格不是更标准吗?(在某些正则表达式的风格中,\S匹配非空格字符...) - jsh

8
相当简单。不允许空字符串。
^[^' ]+$

wuub回答得很快,但还是感谢+1。这个方法也行。但请问为什么要用+而不是*? - gbn
+1 for the non escaped version. 你可能比我更擅长正则表达式。 - Wojciech Bederski
1
用加号(+)代替乘号(*)以禁止空字符串。 - Daniel Brückner

2

我认为这个

^\w*$

应该像\w一样工作,不包括单引号或空格。


1

没有仔细阅读细节,我没有看到任何地方有[^ '](带有空格和单引号)。


正确。我最初只是测试单引号而已。 - gbn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接