带有新行的RegExp自适应
我使用以下RegExp查找上面列出的URI:带有新行的RegExp自适应,regex,Regex,我使用以下RegExp查找上面列出的URI: "^w{3}\.[\S\-\n|\S]+[^\s.!?,():]+$" 要查找的URL: www.example.org www.example-example.org www.example-example.org/product 您可以在www.example-上找到它 example.org/product www.example.org 你会在那里找到的 编号1、2和3将被找到,但编号4。将“www.example-”作为URI提供。 当4
"^w{3}\.[\S\-\n|\S]+[^\s.!?,():]+$"
要查找的URL:
上找到它 example.org/product
你会在那里找到的
^
和$
时,只有数字5不起作用。
有人可以帮忙吗?问题是第二个方括号中的“^\s”。根据您的编程语言,“\s”可能与新行匹配。因此,您告诉它匹配任何非空白的内容,它会找到一个空白(新行) 然而,这应该只是你的问题之一。正则表达式使用“^”和“$”字符,分别表示行的开始和结束。请尝试以下URL示例: 您好,来自www.example.org 匹配吗?我想不会的。你的模式
^w{3}\.[\S\-\n|\S]+[^\s.!?,():]+$
可以简化为
^w{3}\.[\S\n]+[^\s.!?,():]$
[\S\-\n |\S]
这是一个字符类,没有或可能,不需要重复,-
包含在\S中。因此[\S\n]
也在这样做
[^\s.!?,():]+
因为您将每个非空格与前面的表达式匹配,所以这里不需要+。我假设您只是希望您的模式不以类中的某个字符结束
查看您的模式(我在第一节课中添加了\r
,因为在那里换行需要它)
这是一个非常有用的测试正则表达式的工具
我想你的问题是你想在链接中允许换行。你想怎么处理这件事?如果下一行中的单词只是一个单词或链接的一部分,您希望如何区分该行何时以链接结尾我认为这是不可能的嗯,没错。不使用“^”和“$”字符也将匹配您的示例和我的4个示例
但有另一个例子(5.我在顶部编辑我的帖子),它返回我“www.example.org You'll”