提问人:William Humphries 提问时间:6/16/2020 最后编辑:William Humphries 更新时间:6/17/2020 访问量:544
找到的字符串中的正则表达式最后一个字符或位置
Regex Last Character or Position from Found String
问:
我已经浏览了正则表达式上次出现?,但无法使正则表达式适用于我的示例字符串(“https://www.fakesite.com 测试一”)。我只需要返回网站名称的最后一个字符(或位置)。我有用于捕获站点和获取最后一个字符的表达式,但无法获得正确的表情。
(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]
{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|
(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,}) <- Regular Expression for website
(?=.?$). <- Regular Expression for retrieving last character
我一直在用 https://regex101.com/ 试图找到,但没有运气。
如何检索最后一个字符或位置?
--编辑--
如何只检索任何字符串的最后一个字符?(我只需要System Engineer中的字母“r”)。“系统工程师”是动态的。
“对于位于的系统工程师职位”
(?<=position of )(.*)(?= located) <- regex to capture System Engineer between words 'position of' and 'located'
答:
您可以尝试以下正则表达式。下面的正则表达式将检查有效的 url 地址,并为您提供 url 的最后一个字符。
https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}(\w)\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)
上述正则表达式的解释:
https?:\/\
/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}
- 匹配正则表达式的部分以及第一个 .http/https://
www
.
[a-zA-Z0-9()]{1,6}
- 此部分与 url 部分的最后一个匹配。
(\w)
- 表示捕获 url 最后一个字符的捕获组。如果您不想包含 .([a-zA-Z0-9])
_
\b(?:
[-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*
) - 将 url 的其余部分(如 或 等)匹配零次或多次。.uk
.in
您可以在此处找到上述正则表达式的演示。
参考:匹配有效 url 的正则表达式取自此答案。
如果您想在正则表达式中进行修改;只需在正则表达式之后添加即可。您可以在此处找到演示。[a-zA-Z]
评论
上一个:验证混淆令牌
评论
[\S\s]$
String str = "SomeString"; String regex = "(?<=" + str + ")\w;