正则表达式 - 匹配后只允许空格或空格
嗨我几乎是新的正则表达式...所以,也许我的问题很简单,但我找不到解决方案!正则表达式 - 匹配后只允许空格或空格
我正在写一个正则表达式模式,用于查看用户的写作,并用另一种颜色绘制所创建的匹配。 我想例如用另一种颜色绘制,如果用户写的是这样的:
foo()
的事情是,我不想画,如果用户以后写入别的东西,我的意思是,如果用户只写
"foo()" (or "foo() ")
那很好,我要画它,但是如果用户写
"foo()d"
我不想油漆,因为现在写得很好 为了我。
我已经写了匹配“foo()”(或者也带有一个点在中间,如“foo.foo()”)的正则表达式模式,但我面对的是这个问题。 我需要的东西添加到我的模式只允许一个空间,或没有(如果用户写的东西后,否则“)”我不想与之相匹配的) 这是我的模式:
[a-z]*\.?[a-z]*\(("[^"\r\n]*"|[-]?\b\d+[\.]?\d*\b)?\)
非常感谢!
[AZ] [AZ](( “[^” \ r \ n]的“?| - [。]?[] \ B \ d + \ d \ B))。?[] ?
添加[]?应该这样做。?用于1或0,[]将只匹配空间。
此外,[\ S]?会工作为所有类型的空白(包括标签。)
这不行,好像下一个字符不是白色空格,它会匹配空格零次。我认为gezequiel想要失败,如果他匹配'\ S',即非空白字符。 – 2012-04-18 14:59:40
啊谢谢阿德,应该更彻底地阅读这个问题。 – Scen 2012-04-18 16:07:05
这似乎是你在找什么,根据我的正则表达式测试仪:
在正则表达式以上(\w+)(\.*)(\(\))+(\s)*(?!.)
的重要组成部分,为您的是::0
如果你想允许一个以上的空间,使用此:提前
[a-z]*\.?[a-z]*\(("[^"\r\n]*"|[-]?\b\d+[\.]?\d*\b)?\)([ ]*)(?!.)
使用负的样子(\ S)*()
(\ s)*:?!后跟0或多个空格 ():?!没有其他字符
这太棒了!谢谢! – gezequiel 2012-04-18 15:12:34
+1:很好的答案!完美的作品。 – 2012-04-18 15:23:30
@gezequiel:查看我以前的评论。你需要做一点小小的调整。 – 2012-04-18 15:28:10
您可以尝试添加:
\ s *%?
\ S *:零或多个空格
%表示:字符串的结尾
这并不完全清楚你在问什么。这之后有没有人物?如果没有,你可以用'\ s?$'结束你的正则表达式。 – 2012-04-18 15:01:10
没错,这是行不通的,因为我想让用户继续写... – gezequiel 2012-04-18 15:11:58