我正在尝试使用正则表达式在python中拆分字符串。这一行对我来说几乎是完美的:
from string import punctuation
import re
row = re.findall('\w+|[{0}]+'.format(punctuation), string)
但是,它也不会在_的实例上拆分字符串。例如:
>>> string = "Hi my name is _Mark. I like apples!! Do you?!"
>>> row = re.findall('\w+|[{0}]+'
我混淆了以下三种模式,有人能更详细地解释一下吗?
## IPython with Python 2.7.3
In [62]: re.findall(r'[a-z]*',"f233op")
Out[62]: ['f', '', '', '', 'op', ''] ## why does the last '' come out?
In [63]: re.findall(r'([a-z])*',"f233op")
Out
我有这段代码,并希望最终将re.findall()响应中的IP地址转换为字符串。但我总是会出错(见下文)。
url = 'http://checkip.dyndns.org'
request = urllib.urlopen(url).read()
ip = str(re.findall(r'[0-9]+(?:\.[0-9]+){3}', request))
print ip
我总是会犯这个错误
TypeError: not all arguments converted during string formatting
谁能告诉我转换它的最好方法是什么?谢谢。
我正在尝试使用Python提取包含特定字符串的段落。示例: text = """test textract.
new line
test word.
another line.""" 下面的代码可以工作: myword = ("word")
re.findall(r'(?<=(\n)).*?'+ myword + r'+.*?(?=(\n))',text) 并将返回: ['test word.'] 但是,如果我想提取“new line test word.”,下面的方法都
我正在尝试迭代,并计算法语文本文件中单词的数量(包含重音字符)。下面的代码选择所有单词,但不考虑重音字符:
#!/usr/bin/env python
# -*- coding: utf-8 -*- import re
wordcount={}
f = open("verbatim2.txt", "r") regex = re.compile(r'\b\w{4,}\b')
#regex = re.compile(r'[A-Z]\p{L}+\s*')
for line in f:
words = regex.fin
我知道,例如,如果我想找出连续的a的所有发生的长度
在输入=“11aaaa11111aaaaa11a11aaa11aaa11aaa”中,我可以这样做。
[len(s) for s in re.findall(r'a+', input)]
但是,我不知道如何使用char变量来完成这个任务。例如,
CHAR = 'a'
[len(s) for s in re.findall(r'??????', input)] # Trying to find occurrences of CHARs..
有办法吗??
我希望找到以一个非字母数字字符开头的单词,比如'$',以一个带有re.findall的字符串开头。
匹配词示例
$Python
$foo
$any_word123
非匹配词示例
$$Python
foo
foo$bar
为什么\b不能工作
如果第一个字符是字母数字,我可以这样做。
re.findall(r'\bA\w+', s)
但这对于像\b\$\w+这样的模式不起作用,因为\b只匹配\w和\W之间的空字符串。
# The line below matches only the last '$baz' which is the one that
我刚开始学习python,我可以想到两种方法来计数字符串中的字母(忽略数字、标点符号和空格)。
用于循环的:
for c in s:
if c.isalpha():
counter += 1
print(counter)
创建一个字母列表并计算列表的长度:(它将创建一个不想要的列表)
import re
s = "Nice. To. Meet. You."
letters = re.findall("([a-z]|[A-Z])", s)
counter = len(letters)
print(counter)
有人能告诉我是否有一种“琵
在字符串中,我希望使用re模块查找长度大于4的所有单词。
示例输入:This is good Python forum and its helping a lot to beginners.
输出:['Python','helping','beginners]
我在下面试过了,但不起作用:
match=re.findall(r'([\w]{4}).*',str1)
我想删除我的hrefs到我的数据集,但我得到这个错误:“不平衡的括号”!要删除"href",我使用以下python代码:
data = data.apply(lambda x: re.sub(re.findall(r'\<a(.*?)\>', x)[0], '', x) if (len(re.findall(r'\<a (.*?)\>', x))>0) and ('href' in re.findall(r'\<a (.*?)\>', x)[0]) else
拆分字符串的最佳方法是什么?
text = "hello there how are you"
用Python?
所以我最终会得到这样的数组:
['hello there', 'there how', 'how are', 'are you']
我试过这样做:
liste = re.findall('((\S+\W*){'+str(2)+'})', text)
for a in liste:
print(a[0])
但我得到了:
hello there
how are
y
代码:
def multi_re_find(patterns,phrase):
for pat in patterns:
print("Searching for pattern {}".format(pat))
print(re.findall(pat,phrase))
# print(pat.findall(phrase))
print("\n")
test_phrase1 = ["This is a string! But it has punctuation. How c
除下划线外,我需要在UNICODE中找到所有两个字符的求和。目前的解决办法是:
pattern = re.compile(ur'(?:\s*)(\w{2})(?:\s*)', re.UNICODE | re.MULTILINE | re.DOTALL)
print pattern.findall('a b c ab cd vs sd a a_ _r')
['ab', 'cd', 'vs', 'sd', 'a_', '_r']
我需要从regex中排除下划线_,因此找不
我是一个python初学者,希望python能够从一个文本文件中捕获所有带引号的文本。我尝试过以下几种方法:
filename = raw_input("Enter the full path of the file to be used: ")
input = open(filename, 'r')
import re
quotes = re.findall(ur'"[\^u201d]*["\u201d]', input)
print quotes
我得到了错误:
Traceback (most recent call last
当使用正则表达式时,我们通常,如果不是总是使用它们来提取某种信息。我需要的是用其他值替换匹配值...
现在我正在做这个..。
def getExpandedText(pattern, text, replaceValue):
"""
One liner... really ugly but it's only used in here.
"""
return text.replace(text[text.find(re.findall(pattern, text)[0]):], replaceVa
我正在尝试使用Python解析一个大的文本文件。我能够使用正则表达式在文本编辑器中使用正则表达式。我正在尝试找出如何将其转换为Python代码。任何洞察力都将不胜感激。
文件是:sample2.txt
1234 Street Ave
City, State 03433
1 Beds, 2 Baths, 3456 Sq. Ft.
Price: $10,000
56789 Street Ave
City, State 03433
2 Beds, 3 Baths, 7891 Sq. Ft.
Price: $11,000
正则表达式:
(.*)\r(.*)\r^([0-9]+)( Beds, )