相关疑难解决方法(0)

什么是匹配URL的好正则表达式?

目前我有一个输入框,可以检测URL并解析数据.

所以现在,我正在使用:

var urlR = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)
           (?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var url= content.match(urlR);
Run Code Online (Sandbox Code Playgroud)

问题是,当我输入一个URL时www.google.com,它不起作用.当我进入时http://www.google.com,它正在工作.

我的正则表达式不是很流利.谁能帮我?

javascript regex

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

Python:如何在if语句中使用RegEx?

我有以下代码,它查看一个目录中的文件,并将包含某个字符串的文件复制到另一个目录中,但我尝试使用正则表达式,因为字符串可以是大写和小写,也可以是两者的混合.

在我尝试使用RegEx之前,这是有效的代码

import os
import re
import shutil

def test():
    os.chdir("C:/Users/David/Desktop/Test/MyFiles")
    files = os.listdir(".")
    os.mkdir("C:/Users/David/Desktop/Test/MyFiles2")
    for x in (files):
        inputFile = open((x), "r")
        content = inputFile.read()
        inputFile.close()
        if ("Hello World" in content)
            shutil.copy(x, "C:/Users/David/Desktop/Test/MyFiles2")
Run Code Online (Sandbox Code Playgroud)

当我尝试使用RegEx时,这是我的代码

import os
import re
import shutil

def test2():
    os.chdir("C:/Users/David/Desktop/Test/MyFiles")
    files = os.listdir(".")
    os.mkdir("C:/Users/David/Desktop/Test/MyFiles2")
    regex_txt = "facebook.com"
    for x in (files):
        inputFile = open((x), "r")
        content = inputFile.read()
        inputFile.close()
        regex = re.compile(regex_txt, re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

我猜我需要一行代码

if regex = re.compile(regex_txt, re.IGNORECASE) == True
Run Code Online (Sandbox Code Playgroud)

但我似乎无法得到任何工作,如果有人能指出我正确的方向,将不胜感激.

python regex

41
推荐指数
3
解决办法
12万
查看次数

在正则表达式替换中是否存在类似计数器变量的东西?

如果我有很多匹配,例如在多行模式下,我想用匹配的一部分替换它们以及增量的计数器号.

我想知道任何正则表达式的味道是否有这样的变量.我找不到一个,但我似乎记得那样存在......

我不是在谈论可以使用回调替换的脚本语言.这是关于能够在RegexBuddy,sublime text,gskinner.com/RegExr等工具中实现这一点,就像你可以用\ 1或$ 1引用捕获的子串一样.

regex language-agnostic

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

搜索并替换为"仅限全字"选项

我有一个脚本可以运行到我的文本中并搜索并替换我在数据库中编写的所有句子.

剧本:

with open('C:/Users/User/Desktop/Portuguesetranslator.txt') as f:
    for l in f:
        s = l.split('*')
        editor.replace(s[0],s[1])
Run Code Online (Sandbox Code Playgroud)

和数据库示例:

Event*Evento*
result*resultado*
Run Code Online (Sandbox Code Playgroud)

等等...

现在发生的事情是我需要在那个剧本中使用"全字",因为我发现自己遇到了问题.

例如,使用ResultEvent,因为当我替换Resultado和时Evento,我再次在文本中运行脚本,脚本再次替换ResultadoEvento.

后,我运行脚本的结果保持这样的ResultadoadoEventoo.

只是让你们知道..它不仅仅针对事件和结果,还有超过1000多个句子我已经为搜索设置并替换为工作..

我不需要简单的搜索和替换两个单词..因为我将一遍又一遍地为不同的句子编辑数据库..

python

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

为什么\ b在python re模块中不起作用?

众所周知,这\b意味着正则表达式中的单词边界.但是repython中的以下模块代码不起作用:

>>> p=re.compile('\baaa\b')
>>> p.findall("aaa vvv")
[]
Run Code Online (Sandbox Code Playgroud)

我认为返回的结果findall应该是["aaa"],但它没有找到任何东西.怎么了?

python regex

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

如何在 Pandas str.contains 中使用 \b 字边界?

使用 str.contains 时是否有等价物?

以下代码因“Sa”而错误地将“Said Business School”列在类别中。如果我可以创建一个词界,它就会解决这个问题。在搞砸之后放一个空格。我正在使用熊猫,这是 dfs。我知道我可以使用正则表达式,但是很好奇我是否可以使用字符串来使它更快

gprivate_n = ('Co|Inc|Llc|Group|Ltd|Corp|Plc|Sa |Insurance|Ag|As|Media|&|Corporation')
df.loc[df[df.Name.str.contains('{0}'.format(gprivate_n))].index, "Private"] = 1 
Run Code Online (Sandbox Code Playgroud)

python regex string word-boundary pandas

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

Python字符串替换

我试图用另一个词替换一个词的出现:

word_list = { "ugh" : "disappointed"}

tmp = ['laughing ugh']

for index, data in enumerate(tmp):
    for key, value in word_list.iteritems():
        if key in data:
            tmp[index]=data.replace(key, word_list[key])

print tmp
Run Code Online (Sandbox Code Playgroud)

而这有效...... ughin的出现laughing也在输出中被替换:ladisappointeding disappointed.

如何避免这种情况,以便输出是laughing disappointed

python string

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

Python - 错误:后视需要固定宽度的模式

我有一个看起来像的字符串:

phrase = '5 hampshire road bradford on avon avon dinas powys powys north somerset hampshire avon'
Run Code Online (Sandbox Code Playgroud)

我想返回一个删除了某些单词的新字符串,前提是它们前面没有某些其他单词。

例如,我要删除的词是:

c_out = ["avon", "powys", "somerset","hampshire"]
Run Code Online (Sandbox Code Playgroud)

只有当他们不遵循

c_except = ["on\s","dinas\s"]
Run Code Online (Sandbox Code Playgroud)

注意: 内可能有多个单词实例, 内可能有多个单词c_out实例c_except

我个人尝试过'on\s'

phrase = '5 hampshire road bradford on avon avon dinas powys powys north somerset hampshire avon'

regexp1 = re.compile(r'(?<!on\s)(avon|powys|somerset|hampshire)')
print("1st Result: ", regexp1.sub('', phrase))
1st Result:  '5  road bradford on avon avon dinas   north'
Run Code Online (Sandbox Code Playgroud)

这正确地忽略了第一个'avon',因为它前面是'on\s',它正确地删除了第三个'avon', …

python regex python-3.x

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

为什么不\ b\w +\b匹配一个单词?

为什么以下Python语句会返回None

>>> re.match('\b\w+\b', 'foo')
>>>
Run Code Online (Sandbox Code Playgroud)

据我了解,这应该与单词相符foo.第一个\b应匹配单词的开头foo,\w+应匹配单词foo,最后\b应匹配单词的结尾foo.我的理解有什么问题?

python regex

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

Python Regex Word Boundaries没有按预期工作

为什么字边界不起作用?

阅读这个网站,我知道一个单词边界是这样的:

有三种不同的职位符合词边界:

  • 在字符串中的第一个字符之前,如果第一个字符是单词字符.
  • 在字符串中的最后一个字符之后,如果最后一个字符是单词字符.
  • 在字符串中的两个字符之间,其中一个是单词字符,另一个不是单词字符.

a下面的字符串似乎符合上面列出的至少一个位置.

a = 'Builders Club The Ohio State'
re.sub('\bThe\b', '', a, flags=re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

输出."The"没有变化.

'Builders Club The Ohio State'
Run Code Online (Sandbox Code Playgroud)

为什么字边界不起作用?

当我在'The'模式之前和之后放置空格时,正则表达式似乎有效.

a = 'Builders Club The Ohio State'
re.sub(' The ', ' ', a, flags=re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

输出:

'Builders Club Ohio State'
Run Code Online (Sandbox Code Playgroud)

python regex

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

Python正则表达式匹配单词的结尾

例如,如何匹配_ab句子中的第二个_ab_ab is a test?我试图\>匹配词尾,但不适用于Python 2.7.注意:我匹配的不是字符串的结尾,而是单个单词的结尾.

其他帖子中有隐含的答案.但我认为应该提倡对这个问题作出简单而直接的回答.所以我在尝试以下帖子后没有找到直接和简洁的解决方案就问过它.

  1. Python Regex用于查找空格,字符串结尾和/或单词边界

  2. Python re模块是否支持字边界(\ b)?

python regex

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

Python - 正则表达式 - 如何只找到四个字母的单词?

我正在处理一系列我想搜索的文本,只找到4个字母的单词.它有效,除了它还可以找到4个以上的字母单词.

import re
test ="hello, how are you doing tonight?"
total = len(re.findall(r'[a-zA-Z]{3}', text))
print (total)
Run Code Online (Sandbox Code Playgroud)

它找到15,虽然我不确定它是如何发现的那么多.我以为我可能不得不使用\ b来选择单词的开头和结尾,但这似乎对我没用.

python regex

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