相关疑难解决方法(0)

我不懂正则表达式

我正在使用一个使用正则表达式从字符串中删除所有html标记的教程(Ruby):

product.description.gsub(/<.*?>/,'').

我不知道怎么解释?.这是否意味着:"至少有一个以前的"?在那种情况下,会不会/<.+>/更充足?

regex regex-greedy

2
推荐指数
2
解决办法
175
查看次数

正则表达式从常用短语中获取单个单词

我有一个这样的短语

电脑,艾迪去了市场.

我想得到Eddie这个词而忽略所有其他的词,因为其他词是不变的,而Eddie这个词可能是任何东西.

我如何在正则表达式中执行此操作?

编辑:

对不起,我正在使用.NET正则表达式:)

regex

2
推荐指数
1
解决办法
368
查看次数

为什么不呢?在这种模式中作为可选的重复说明符工作?

我想尝试匹配输入

<foo>
<bar>
#####<foo>
#####<bar>
Run Code Online (Sandbox Code Playgroud)

我试过#{5}?<\w+>,但它不匹配<foo><bar>.

这种模式有什么问题,如何修复?

java regex

2
推荐指数
1
解决办法
314
查看次数

什么.*?正则表达式实际上是指

我已经使用perl十年了.但最近我对使用它感到困惑.*?正则表达式.

它似乎与最小字符数不匹配.有时会产生不同的结果.

例如,对于这个字符串:aaaaaaaaaaaaaaaaaaaaaaammmmmmmmmmmbaaaaaaaaaaaaaaaaaaaaaa和pattern:a.*?b它匹配两组中的完整输入字符串.根据定义,它应该与最后的"ab"相匹配.

regex perl

2
推荐指数
2
解决办法
1939
查看次数

正则表达式占有量对抗懒惰或贪婪

任何人都可以一步一步解释我为什么正则表达式失败了:

<.++>
Run Code Online (Sandbox Code Playgroud)

用这个字符串来比较: <em>

使用惰性或贪婪量词找到相同的字符串,但在这种情况下涉及哪些步骤?

我使用Java正则表达式风格.

java regex

1
推荐指数
1
解决办法
1345
查看次数

Java正则表达式问题

我正在为一个Java程序创建一个XMLParser(我知道那里有很好的XMLParser,但我只想这样做).

我有一个名为getAttributeValue(String xmlElement,String attribute)的方法,并使用正则表达式查找具有属性名称加上的字符序列

="any characters that aren't a double quote"
Run Code Online (Sandbox Code Playgroud)

然后我可以解析引号的内容.不幸的是,我在使用正则表达式模式时遇到了麻烦.如果我使用:

Pattern p = Pattern.compile(attribute + "=\"(.)+\"");
Run Code Online (Sandbox Code Playgroud)

然后我得到一个以我的属性名称开头的字符串,但因为有大量的属性和值,并且最后一个的值具有双引号,我得到我想要的字符串以及所有其他属性名称和值,如下所示:

attributeOne="contents" attributeTwo="contents2" attributeThree="contents3"
Run Code Online (Sandbox Code Playgroud)

所以我认为我可以有一个正则表达式,而不是"." 任何字符符号,都有"任何字符,但不是双引号".我试过了:

Pattern p = Pattern.compile(attribute + "=\"(.&&[^\"])+\"");
Pattern p = Pattern.compile(attribute + "=\"(.&&(^\"))+\"");
Pattern p = Pattern.compile(attribute + "=\"([.&&[^\"]]+)\"");
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.如有任何建议和意见,我将不胜感激.

谢谢.

java regex pattern-matching

1
推荐指数
1
解决办法
253
查看次数

Python正则表达式:(.+)和(.+?)之间的区别

我是regex和Python的urllib的新手.我浏览了一个关于网络报废的在线教程,它有以下代码.在研究正则表达式后,在我看来,我可以在我的正则表达式中使用(.+)而不是(.+?),但是我错了.我最终打印的方式比我想要的更多HTML代码.我以为我正在掌握正则表达式,但现在我很困惑.请向我解释这两个表达式之间的区别以及为什么它会抓取这么多html.谢谢!

PS.这是一个星巴克股票报价刮刀.

import urllib
import re

url = urllib.urlopen("http://finance.yahoo.com/q?s=SBUX")
htmltext = url.read()
regex = re.compile('<span id="yfs_l84_sbux">(.+?)</span>')
found = re.findall(regex, htmltext)
Run Code Online (Sandbox Code Playgroud)

打印发现

python regex urllib

1
推荐指数
1
解决办法
9409
查看次数

我的正则表达式做错了什么?

我试图捕获"Rio Grande Do Leste":

...
<h1>Rio Grande Do Leste<br />
...
Run Code Online (Sandbox Code Playgroud)

运用

var myregexp = /<h1>()<br/;

var nomeAldeiaDoAtaque = myregexp.exec(document);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

更新:

还有2个问题:

1)搜索(文档)没有产生任何结果,但将其更改为(document.body.innerHTML)工作.这是为什么?

2)我不得不将其更改为:myregexp.exec(document.body.innerHTML)[1] ; 得到我想要的东西,否则它会给我一些结果,包括<h1>.这是为什么?

3)(已回答)为什么我需要使用".*"?我认为它会在()之间收集任何东西?

html javascript regex capturing-group

0
推荐指数
2
解决办法
185
查看次数

仅匹配所有"http"网址,而不包含其他字符

我试过以下表达式.

(http:\/\/.*?)['\"\< \>]


(http:\/\/[-a-zA-Z0-9+&@#\/%?=~_|!:,.;\"]*[-a-zA-Z0-9+&@#\/%=~_|\"])
Run Code Online (Sandbox Code Playgroud)

第一个表现不错但总是给出匹配网址的最后一个额外字符.

例如:

http://domain.com/path.html" 

http://domain.com/path.html<
Run Code Online (Sandbox Code Playgroud)

注意

" <
Run Code Online (Sandbox Code Playgroud)

我不希望他们使用URL.

regex screen-scraping

0
推荐指数
1
解决办法
106
查看次数

为什么a*a 匹配aaa?

我正在使用 python3 re 模块 - 我发现a*a匹配aaa. 我认为正则表达式默认是贪婪的(除非我们用 覆盖它来懒惰?) - 因此,a*将匹配整个字符串,并且a模式中的尾随将失败。然而,它匹配:

$ import re
$ re.match(r'a*a', 'aaa')
<_sre.SRE_Match object; span=(0, 3), match='aaa'>
Run Code Online (Sandbox Code Playgroud)

这不应该失败吗?

regex python-3.x regex-greedy

-2
推荐指数
1
解决办法
652
查看次数