【问题标题】:Regular Expression to find entire link in string正则表达式在字符串中查找整个链接
【发布时间】:2016-04-14 20:56:48
【问题描述】:

我在 apex 中有一个正则表达式,它只在字符串中抓取我需要的部分链接。我需要它来抓取整个链接。

这是我的工作:

String myvar = 'this is an example http://test.com/testing/123654123%0A%0A%0A%';

String myvar1 = '(?:(?:(?:[a-z0-9]{3,9}:(?://)?)(?:[-;:&=+$,w]+@)?[a-z0-9.-]+|(?:www.|[-;:&=+$??,w]+@)[a-z0-9.-]+)((?:/[+~%/.w-]*)?\\??(?:[-+=&;%@.w]*)#?w*)?)';

            Pattern MyPattern = Pattern.compile(myvar1);

            Matcher MyMatcher = MyPattern.matcher(myvar);

            while (MyMatcher.find()) { 
                System.debug(MyMatcher.group());
                Location = MyMatcher.group();
        }

这只是返回http://test.com/

我需要http://test.com/testing/123654123

如何修改正则表达式以提供完整的链接?

我只需要修改我现有的正则表达式即可完成此操作。如何尽可能多地保留 im 使用的正则表达式?

(?:(?:(?:[a-z0-9]{3,9}:(?://)?)(?:[-;:&=+$,w]+@)?[a-z0-9.-]+|(?:www.|[-;:&=+$??,w]+@)[a-z0-9.-]+)((?:/[+~%/.w-]*)?\\??(?:[-+=&;%@.w]*)#?w*)?)

【问题讨论】:

  • 如果您只是想匹配链接,那么http[^\\s]+ 就足够了吗? Demo
  • 哪种链接?只有 HTTP 还是您需要它来获取任何类型的链接? (https://gopher://ftp://myownpersonnalurlscheme://) 是否需要拆分不同的组件,是否需要处理端口和用户等。
  • 没有真正可靠的方法可以在字符串中查找 url。您所能做的就是搜索已定义的 url。
  • 您好,在我的实际版本中,链接后面是 %。我将如何解决这个问题?例如,这是一个示例 test.com/testing/123654123%0A%0A%0A%
  • @noob 你能帮帮我吗?

标签: java regex url expression apex


【解决方案1】:

使用这个正则表达式:

https?:\/\/[a-zA-Z0-9.\/-]*

在线演示http://regexr.com/3d7j7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多