我想从一段文本中提取一个字符串。该字符串必须以某个字符串结尾。
例:
词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”出现两次。
谢谢
出什么问题了 :
/(?<={).+(?=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) 我使用的是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.这对我来说很有意义.
我有以下正则表达式,在新情况出现之前完美运行
^.*[?&]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) -edit-注意到?最后.{2,}?
我发现你可以写
.{2,}?
Run Code Online (Sandbox Code Playgroud)
不完全和下面一样吗?
.{2}
Run Code Online (Sandbox Code Playgroud) 我对正则表达式和贪婪与懒惰有点困惑.这真的很简单,感觉我错过了一些明显的东西.
我尽可能地简化了我的问题以便说清楚.考虑以下字符串和正则表达式模式.
string:
aaxxxb
pattern:
(?<=a)(.*?)(?=b)
result:
axxx
what I expected:
xxx
Run Code Online (Sandbox Code Playgroud)
这个结果是我期望使用的.*而不是.*?,我错过了什么?
显然,同样的事情,如果我使用.*?b给我aaxxxb.为什么是这样?不应该懒(比如.*?)尽可能少的字符返回?
我想删除[]当前我正在做的字符之间的字符
df['Text'] = df['Text'].str.replace(r"\[.*\]","")
Run Code Online (Sandbox Code Playgroud)
但输出并不理想。之前,它是[image] This document,它是经过******* This document地方*是空白。
我如何摆脱这个空白。
编辑 1
该Text列df看上去象下面这样:
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) 我正在使用一个使用正则表达式从字符串中删除所有html标记的教程(Ruby):
product.description.gsub(/<.*?>/,'').
我不知道怎么解释?.这是否意味着:"至少有一个以前的"?在那种情况下,会不会/<.+>/更充足?
我想尝试匹配输入
<foo>
<bar>
#####<foo>
#####<bar>
Run Code Online (Sandbox Code Playgroud)
我试过#{5}?<\w+>,但它不匹配<foo>和<bar>.
这种模式有什么问题,如何修复?
我搜索并发现[^?]不会包含某个字符,例如本例中的问号,但它似乎包含一个空格,这不是我想要的。这种模式:
\((.*?)\)[^?]
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)
我可以使用什么模式来捕获顶行而没有尾随空格但忽略下面的行?
您可以看到这些模式都不能正常工作: