我正在使用此RegEx:
\s*((\w*\.*\s*)+[.*(\w)]+(?=\d{4}))(\d{4}\s*\,)*
目标是将单词与最后一个以点结尾的单词匹配,4位数的跟随者以逗号结尾。
这是test.2014,
它工作正常。现在,我想增加在“测试”之间有一个空格(\ s)的可能性。和“2014”,但是空格不是强制性参数,如果存在则应该匹配。
请问如何将其添加到我的正则表达式中?我们如何设置非强制性参数?
谢谢。
答案 0 :(得分:1)
尝试这种模式
\s*((\w*\.*\s*)+[.*(\w)]+\s*(?=\d{4}))(\d{4}\s*\,)*
\s*
时间空间为零或更多。我在日期模式之前添加了它
或尝试:
\s*((\w*\.*\s*)+[.*(\w)]+(?=\s*\d{4}))(\s*\d{4}\s*\,)*
答案 1 :(得分:1)
有几种方法可以做到这一点。您可以使用问号,星号,或者您可以指定可行事件的范围,如下表所示。
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*\,)*
答案 2 :(得分:1)
目标是将单词与最后一个以点结尾的单词匹配, 4位数的跟随者以逗号结尾
(?:\s*\w+)*\s*\w+\.\d{4},
现在,我想增加一个空格的可能性(\ s) 之间的“测试”。和“2014”,但空白不是强制性的 参数,
(?:\s*\w+)*\s*\w+\.\s*\d{4},
答案 3 :(得分:0)
试试这个
/\s*((\w*\.*\s*)+[.*(\w)]+(\s*)(?=\d{4}))(\d{4}\s*\,)*/