我正在使用这个正则表达式:
s*((w*.*s*)+[.*(w)]+(?=d{4}))(d{4}s*,)*
目标是将单词与最后一个以点结尾的单词匹配,后面的单词以逗号结尾的 4 位数字。
这是一个测试.2014,
而且它工作正常。现在,我想添加在"test."和"2014"之间有一个空格(\s)的可能性,但空格不是强制性参数,如果有的话应该匹配。
你能帮我如何把它添加到我的正则表达式中吗?我们如何设置非强制性参数?
谢谢。
试试这个模式
s*((w*.*s*)+[.*(w)]+s*(?=d{4}))(d{4}s*,)*
s*
存在零个或多个时间空间。我在日期模式之前添加了它
或尝试:
s*((w*.*s*)+[.*(w)]+(?=s*d{4}))(s*d{4}s*,)*
有几种方法可以做到这一点。可以使用问号、星号,也可以指定可行匹配项的范围,如下表所示。
Regular Expressions Quantifiers
* 0 or more
+ 1 or more
? 0 or 1
{3} Exactly 3
{3,} 3 or more
{3,5} 3, 4 or 5
s*((w*.*s*)+[.*(w)]+(s+)(?=d{4}))(d{4}s*,)*
s*((w*.*s*)+[.*(w)]+(s*)(?=d{4}))(d{4}s*,)*
s*((w*.*s*)+[.*(w)]+s{0,1}(?=d{4}))(d{4}s*,)*
目标是将单词与最后一个以点结尾的单词匹配, 以逗号结尾的 4 位数字的跟纸
(?:s*w+)*s*w+.d{4},
现在,我想添加空格(\s)的可能性 在"test."和"2014"之间,但空格不是强制性的 参数
(?:s*w+)*s*w+.s*d{4},
试试这个
/s*((w*.*s*)+[.*(w)]+(s*)(?=d{4}))(d{4}s*,)*/