相关疑难解决方法(0)

我如何修剪空白?

是否有一个Python函数可以从字符串中修剪空格(空格和制表符)?

示例:\t example string\texample string

python string whitespace trim strip

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

如何提取两个标记之间的子串?

假设我有一个字符串'gfgfdAAA1234ZZZuijjk',我想只提取'1234'部分.

我只知道在我感兴趣的部分之前AAA和之后ZZZ的几个字符是什么1234.

使用sed它可以用字符串做这样的事情:

echo "$STRING" | sed -e "s|.*AAA\(.*\)ZZZ.*|\1|"
Run Code Online (Sandbox Code Playgroud)

这将给我1234带来的结果.

如何在Python中做同样的事情?

python string substring

288
推荐指数
14
解决办法
63万
查看次数

在Python中转义正则表达式字符串

我想使用来自用户的输入作为搜索某些文本的正则表达式模式.它有效,但我如何处理用户放置在正则表达式中有意义的字符的情况?例如,用户想要搜索Word (s):正则表达式引擎将(s)作为一个组.我希望它像一个字符串一样对待它"(s)".我可以运行replace用户输入并替换(with \()with \)但问题是我需要替换每个可能的正则表达式符号.你知道更好的方法吗?

python regex

211
推荐指数
3
解决办法
11万
查看次数

为什么我收到“SyntaxWarning:无效转义序列 \s”警告?

re.compile('\s+', flags = re.UNICODE)
Run Code Online (Sandbox Code Playgroud)

上面的代码在 python3 中给出了以下警告。

SyntaxWarning: invalid escape sequence \s
Run Code Online (Sandbox Code Playgroud)

我通过使用修复它r'\s+'。这是解决问题的正确方法吗?

python-3.x

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

Python正则表达式过滤匹配模式的字符串列表

我更多地使用 R,而且我在 R 中更容易做到:

> test <- c('bbb', 'ccc', 'axx', 'xzz', 'xaa')
> test[grepl("^x",test)]
[1] "xzz" "xaa"
Run Code Online (Sandbox Code Playgroud)

但是如果test是一个列表,如何在python中做到这一点?

PS我正在使用谷歌的python练习学习python。我更喜欢使用回归表达式。

python regex list subset

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

如何使TfidfVectorizer仅学习词汇中的字母字符(不包括数字)

我正在尝试使用SkLearn的TfidfVectorizer提取单字组,双字组和三字组的词汇。这是我当前的代码:

 max_df_param =  .003
 use_idf = True

 vectorizer = TfidfVectorizer(max_df = max_df_param, stop_words='english', ngram_range=(1,1), max_features=2000, use_idf=use_idf)
 X = vectorizer.fit_transform(dataframe[column])
 unigrams = vectorizer.get_feature_names()

 vectorizer = TfidfVectorizer(max_df = max_df_param, stop_words='english', ngram_range=(2,2), max_features=max(1, int(len(unigrams)/10)), use_idf=use_idf)
 X = vectorizer.fit_transform(dataframe[column])
 bigrams = vectorizer.get_feature_names()

 vectorizer = TfidfVectorizer(max_df = max_df_param, stop_words='english', ngram_range=(3,3), max_features=max(1, int(len(unigrams)/10)), use_idf=use_idf)
 X = vectorizer.fit_transform(dataframe[column])
 trigrams = vectorizer.get_feature_names()

 vocab = np.concatenate((unigrams, bigrams, trigrams))
Run Code Online (Sandbox Code Playgroud)

但是,我想避免数字和包含数字的单词,并且当前输出包含诸如“ 0 101 110 12 15th 16th 180c 180d 18th 190 1900 1960s 197 1980 1b 20 200 200a …

regex tfidfvectorizer

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

前缀为r的字符串的拆分行为

你能帮我理解一下这个行为吗:

>>> a = "abc\\def\\ghi"
>>> a.split(r"\\")
['abc\\def\\ghi']
Run Code Online (Sandbox Code Playgroud)

然而,在花了几分钟和排列后,我发现这个目前正在起作用:

>>> a.split("\\")
['abc', 'def', 'ghi']
Run Code Online (Sandbox Code Playgroud)

你能指出我导致这种行为的文献/设计考虑因素吗?

python string string-split

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

Python的 - 我应该找一个句号(.句号或)使用正则表达式时将使用字符串前缀R'

我想知道使用字符串前缀"R"的时候还是不找使用python正则表达式句号(句号)时,我得到了相同的结果的原因.

阅读数源(下面的链接)的倍数次,用代码尝试找到相同的结果(同样见下文)后,我仍然不确定的:

  1. 是什么时候使用前缀字符串"r"和不使用字符串前缀"R",寻找使用正则表达式一个时期的区别?
  2. 哪种方式被认为是使用带有字符串前缀"r"或没有字符串前缀"r"的python正则表达式在字符串中查找句点的正确方法?

re.compile("\.").sub("!", "blah.")
Run Code Online (Sandbox Code Playgroud)

"胡说!"

re.compile(r"\.").sub("!", "blah.")
Run Code Online (Sandbox Code Playgroud)

"胡说!"

re.compile(r"\.").search("blah.").group()
Run Code Online (Sandbox Code Playgroud)

''

re.compile("\.").search("blah.").group()
Run Code Online (Sandbox Code Playgroud)

''

我看过的资料来源:

Python文档:字符串文字 http://docs.python.org/2/reference/lexical_analysis.html#string-literals

正则表达式用其原始文件替换"转义"字符

Python正则表达式 - r前缀

r前缀用于原始字符串 http://forums.udacity.com/questions/7000217/r-prefix-is-for-raw-strings

python regex string

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

如何在Python的正则表达式中使用*或+括号?

输入中有多个空格分隔的字符,例如: string = "a b c d a s e "

该模式应该是什么样的,当我re.search使用模式对输入进行处理时,我会j通过使用输入第一个字符及其后面的空格.group(j)

我试过这种东西,"^(([a-zA-Z])\s)+"但这不起作用.我该怎么办?

编辑 我的实际问题在标题中,并且正文仅描述了它的一个特例:这是问题的一般版本:如果我必须接受特定类型的所有模式(初始问题具有模式"[a-zA] -Z]\s")从一个字符串,我该怎么办?

python regex

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