找到的字符串中的正则表达式最后一个字符或位置

Regex Last Character or Position from Found String

提问人:William Humphries 提问时间:6/16/2020 最后编辑:William Humphries 更新时间:6/17/2020 访问量:544

问:

我已经浏览了正则表达式上次出现?,但无法使正则表达式适用于我的示例字符串(“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/ 试图找到,但没有运气。

如何检索最后一个字符或位置?

LastCharacterImage

--编辑--

如何只检索任何字符串的最后一个字符?(我只需要System Engineer中的字母“r”)。“系统工程师”是动态的。

“对于位于的系统工程师职位”

(?<=position of )(.*)(?= located)   <- regex to capture System Engineer between words 'position of' and 'located'
与正则表达式 语言无关

评论

1赞 6/16/2020
大正则表达式 hasd probleems。最后一个 char regexr 是[\S\s]$
0赞 William Humphries 6/17/2020
是的,但是如果我不知道字符串并且需要先捕获它,我该如何实现(我不知道文本将是“系统工程师”)
1赞 6/17/2020
您需要了解一些有关 String 或模式的知识,因为这是正则表达式在幕后的工作方式。不过,我可以给你一个编程语言的解决方法。假设你得到一些动态字符串作为输入,例如System Engineer;然后,您可以做的是动态创建正则表达式。类似的东西String str = "SomeString"; String regex = "(?<=" + str + ")\w;
0赞 William Humphries 6/17/2020
是的,我知道文本将介于“位置”和“位置”之间
1赞 6/17/2020
请检查一下。第 1 组为您完成。有帮助吗?

答:

1赞 user7571182 6/16/2020 #1

您可以尝试以下正则表达式。下面的正则表达式将检查有效的 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]

评论

0赞 William Humphries 6/17/2020
你能帮忙对我所做的编辑吗,我需要帮助使它概括化,我通读了解释,但无法获取字符串的最后一个字符并捕获第二组。