我遇到了跟随Reges的问题
(1)找到所有以字母'a'开头并以字母'd'结尾的单词。显示最长的单词。
我的正则表达是这个
^a[a-zA-Z]+d$
但我不知道如何从他们那里找到最长的......?
(2)单独计算偶数和奇数的数量也显示奇数和偶数的最长数 我有做R.E对于奇数是
[13579]
和Even是
[02468]
答案 0 :(得分:3)
正则表达式不够强大,无法选择最长的字符串,因此您必须制作一个用正则表达式扫描文本的程序,并选择最长的匹配。
你的第一个正则表达式几乎是好的 - 用+
替换*
,否则单词ad
(从a
开始到d
结尾)同时将^
和$
锚点替换为两端的\b
(\b
表示"字边界"),因为您要扫描文本反复进行比赛。
第二个正则表达式应该是这样的:
\b[0-9]*[13579]\b // << Odd numbers
\b[0-9]*[02468]\b // << Even numbers
再次,使用这些正则表达式扫描文本,随时存储最长的匹配项,并在到达搜索文本末尾时打印它。