我有以下几种可能性:
' !This is a string! '
'!This is a string !'
'! This is a string !'
' ! This is a string! '
' ! This is a string '
在所有这些情况下,我想匹配
'This is a string'
到目前为止我试过的是什么:
/\s*!(.*)!{0,1}
/\s*!(.*?)!{0,1}
但它要么吞噬!
,要么根本不匹配。请注意,最后的!
是可选的。
答案 0 :(得分:4)
或许这一个
/^\s*!\s*(.*?)\s*!?\s*$/
答案 1 :(得分:1)
这个正则表达式适用于您的问题吗?
^[\s!]*(\w*)[\s!]*$
答案 2 :(得分:1)
答案 3 :(得分:0)
如果我认为字符串不能包含,我会是正确的吗?在这种情况下,您可以执行以下操作:
/\s*![^!]*!{0,1}/
答案 4 :(得分:0)
好的,这个人会保留!最后:
/(?:^[^a-z0-9]*)(.*?)(?:\s*)$/i
这里是:http://jsfiddle.net/UAefq/4/
也可以更新它以丢失!以及字符串末尾的空格,如下所示:
/(?:^[^a-z0-9]*)(.*?)(?:[\!\s]*)$/i
您可以在此处查看结果:http://jsfiddle.net/UAefq/5/
所以我希望这完全回答你的问题。