相关疑难解决方法(0)

正则表达式:匹配字符串从单词到单词

我想从一段文本中提取一个字符串。该字符串必须以某个字符串结尾。

例:

词1 =“你好”
词2 =“世界”

文本:

Hello, this is a sentence.
The whole World can read this.
What World?
Run Code Online (Sandbox Code Playgroud)

我要提取的文本是:

Hello, this is a sentence.
The whole World
Run Code Online (Sandbox Code Playgroud)

我应该使用哪种常规异常来提取字符串。

注意:字符串“ World”出现两次。

谢谢

regex

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

正则表达式:匹配单词的第一个匹配项

出什么问题了 :

/(?<={).+(?=public)/s
Run Code Online (Sandbox Code Playgroud)

全文

class WeightConvertor {

private:
    double gram;
    double Kilogram;
    double Tonnes;
    void SetGram(double);
    void SetKiloGram(double);
    void SetTonnes(double);
matching end

public:
    WeightConvertor();
    WeightConvertor(double, double, double);
    ~WeightConvertor();
    void SetWeight(double, double, double);
    void GetWeight(double&, double& ,double&);
    void PrintWeight();
    double TotalWeightInGram();

public:

};
Run Code Online (Sandbox Code Playgroud)

我怎么能只匹配这个文字:

private:
    double gram;
    double Kilogram;
    double Tonnes;
    void SetGram(double);
    void SetKiloGram(double);
    void SetTonnes(double);
matching end
Run Code Online (Sandbox Code Playgroud)

regex

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

为什么交替中的更长令牌不会匹配?

我使用的是ruby 2.1,但同样的东西可以在rubular网站上复制.

如果这是我的字符串:

????????????????
Run Code Online (Sandbox Code Playgroud)

我用这个表达式进行正则表达式匹配:

(?????????????|??)
Run Code Online (Sandbox Code Playgroud)

我期待得到更长的令牌作为匹配.

?????????????
Run Code Online (Sandbox Code Playgroud)

相反,我得到第二次替换作为匹配.

据我所知,它不像中文字符那样工作.

如果这是我的字符串:

foobar
Run Code Online (Sandbox Code Playgroud)

我使用这个正则表达式:

(foobar|foo)
Run Code Online (Sandbox Code Playgroud)

返回匹配结果是foobar.如果顺序是另一种方式,那么匹配的字符串就是foo.这对我来说很有意义.

ruby regex string alternation regex-alternation

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

正则表达式不够贪心

我有以下正则表达式,在新情况出现之前完美运行

^.*[?&]U(?:RL)?=(?<URL>.*)$
Run Code Online (Sandbox Code Playgroud)

基本上,它用于对抗URL,在U =或URL =之后获取一切,并在URL匹配中返回它

所以,对于以下内容

HTTP://本地主机A = B&U = HTTP:// OTHERHOST富=酒吧

URL = http:// otherhost?foo = bar

不幸的是,出现了奇怪的情况

HTTP://本地主机A = B&U = HTTP:// OTHERHOST富=栏&URL = HTTP:// someotherhost

理想情况下,我希望URL为" http:// otherhost?foo = bar&url = http:// someotherhost ",相反,它只是" http:// someotherhost "

编辑:我认为这解决了它...虽然它不漂亮

^.*[?&](?<![?&]U(?:RL)?=.*)U(?:RL)?=(?<URL>.*)$
Run Code Online (Sandbox Code Playgroud)

regex language-agnostic regex-greedy

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

`regex {n,}?`==`正则表达式{n}`?

-edit-注意到?最后.{2,}?

我发现你可以写

.{2,}?
Run Code Online (Sandbox Code Playgroud)

不完全和下面一样吗?

.{2}
Run Code Online (Sandbox Code Playgroud)

regex

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

正则表达式懒惰与贪婪的混淆

我对正则表达式和贪婪与懒惰有点困惑.这真的很简单,感觉我错过了一些明显的东西.

我尽可能地简化了我的问题以便说清楚.考虑以下字符串和正则表达式模式.

string:
aaxxxb

pattern:
(?<=a)(.*?)(?=b)

result:
axxx

what I expected:
xxx
Run Code Online (Sandbox Code Playgroud)

这个结果是我期望使用的.*而不是.*?,我错过了什么?

显然,同样的事情,如果我使用.*?b给我aaxxxb.为什么是这样?不应该懒(比如.*?)尽可能少的字符返回?

regex

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

熊猫删除括号之间的字符

我想删除[]当前我正在做的字符之间的字符

df['Text'] = df['Text'].str.replace(r"\[.*\]","")
Run Code Online (Sandbox Code Playgroud)

但输出并不理想。之前,它是[image] This document,它是经过******* This document地方*是空白。

我如何摆脱这个空白。

编辑 1

Textdf看上去象下面这样:

ID    Text
0     REAL ESTATE LEASE THIS INDUSTRIAL REAL ESTAT...
5     Lease AureementMade and signed on the \ of Aug...
6     FIRST AMENDMENT OF LEASEDATE: August 31, 2001L...
8     [image: image0.jpg] Jack[image: image1.jb2] ...
9     [image: image0.jpg] ABC SALES Meeting 97...
14    FIRST AMENDMENT OF LEASETHIS FIRST AMENDMENT O...
17    [image: image0.tif] Deep ML LEASE …
Run Code Online (Sandbox Code Playgroud)

python regex pandas

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

我不懂正则表达式

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

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

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

regex regex-greedy

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

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

我想尝试匹配输入

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

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

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

java regex

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

正则表达式排除特定字符不起作用

我搜索并发现[^?]不会包含某个字符,例如本例中的问号,但它似乎包含一个空格,这不是我想要的。这种模式:

\((.*?)\)[^?]
Run Code Online (Sandbox Code Playgroud)

匹配括号中的任何内容,除非最后一个括号后面有一个问号。

(need to capture including brackets) ignore this
(ignore this completely)?
Run Code Online (Sandbox Code Playgroud)

此模式在不包含空格的情况下正确捕获括号中的顶行,但也捕获下面我想忽略的行:

\((.*?)\)
Run Code Online (Sandbox Code Playgroud)

我可以使用什么模式来捕获顶行而没有尾随空格但忽略下面的行?

您可以看到这些模式都不能正常工作:

https://regex101.com/r/fHXJ8x/1

https://regex101.com/r/fHXJ8x/2

regex regex-negation

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