写这个jupyter的原因是好几次自己爬完新闻之后,发现中间有些是html标签代码或者其他多余的英文字符,自己也不想保留,那么这时候一个暴力简单的方法就是使用 unicode 范围 \u4e00 - \u9fff 来判别汉字
unicode 分配给汉字(中日韩越统一表意文字)的范围为 4E00-9FFF
(目前 unicode 6.3 的标准已定义到 9FCC )
# 判断字符是否全是中文
def ishan(text):
# for python 3.x
# sample: ishan('一') == True, ishan('我&&你') == False
return all('\u4e00' <= char <= '\u9fff' for char in text)
ishan("asas112中国")
False
# 提取中文字符
import re
def extract_chinese(txt):
pattern = re.compile("[\u4e00-\u9fa5]")
return "".join(pattern.findall(txt))
extract_chinese("任命的。</p> <p>3G资本成立于2004年,是")
'任命的资本成立于年是'
还有一个是过滤HTML标签的强大工具
HTMLParser
from html.parser import HTMLParser
def strip_tags(html):
Python中过滤HTML标签的函数
>>> str_text=strip_tags("<font color=red>hello</font>")
>>> print str_text
hello
html = html.strip()
html = html.strip("\n")
result = []
parser = HTMLParser()
parser.handle_data = result.append
parser.feed(html)
parser.close()
result=''.join(result)
result = result.replace("\n", "")
return result
strip_tags("<font color=red>hello</font>")
'hello'
写这个jupyter的原因是好几次自己爬完新闻之后,发现中间有些是html标签代码或者其他多余的英文字符,自己也不想保留,那么这时候一个暴力简单的方法就是使用 unicode 范围 \u4e00 - \u9fff 来判别汉字unicode 分配给汉字(中日韩越统一表意文字)的范围为 4E00-9FFF(目前 unicode 6.3 的标准已定义到 9F...
def main():
str = input("请输入字符串:")
chinese = re.findall('[\u4e00-\u9fa5]', str) # 汉字的范围为"\u4e00-\u9fa5"
print(chinese)
if __name__ == '__main__':
main()
在日常业务开发中常常会碰到需要从一段文字中提取时间的情况。例如从文字中提取发布时间、创建时间等。针对不同的文字情况、不同的时间格式,这里整理一份关于提取大部分文字段落中日期时间的代码。有需要的直接调用即可。
代码作用请参考我的文章《python 提取文字段落中的日期字符串》:https://blog.csdn.net/qq_23730073/article/details/126975066。
主要是提取阿拉伯数字的日期字符串,例如:需要识别的文字段,从“技术总是要日积月累的,我是技术空间,欢迎关注我。此文章2022-09-21发布”提取日期。
测试了部分情况:
"技术总是要日积月累的,我是技术空间,欢迎关注我。此文章2022-09-21发布"
"技术总是要日积月累的,我是技术空间,欢迎关注我。此文章2022/09/21发布"
"技术总是要日积月累的,我是技术空间,欢迎关注我。此文章2022-9-21发布"
"技术总是要日积月累的,我是技术空间,欢迎关注我。此文章2022-09-21 08:01发布“
适用情况不止以上这些。也可以参考代码补充正则。
python中
提取字符串的
中文或英文re中的sub函数
提取中文提取英文
提取数字re中的findall函数
提取中文提取英文
提取数字re中的compile函数同时匹配中英文数字去除其他
字符
提取中英文是我们在做数据处理时候经常使用的,最高效的做法就是通过正则判断了,下面是我写的笔记,希望对你有用
re中的sub函数
使用
Python 的re模块,re模块提供了re.sub用于替换
字符串中的匹配项。
re.sub(pattern, repl, string, count=0)
参数说明:
今天,有同事问我怎么批量从Excel某一列字符串中提取中文。以前我都是百度Excel使用技巧或者函数之类的,但是这次没有很好的解决方案,都是说用`TEXTJOIN(,,(IF(LENB(MID(A1,ROW(A1:A100),1))=2,MID(A1,ROW(A1:A100),1),"")))`函数的,本人测试后发现效果并不好,而且只能wps使用。
Python简洁又有强大的生态,可以使用win32com库来实现提取字符串的中文字符。本篇可以实现对Excel的读取、遍历、修改和保存操作,实现自己想要的效
逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub 方法
totalCount = '100abc'
totalCount = re.sub(\D, , totalCount)
但是没有说明什么含义,于是去查了其他的资料,做一下记录:
在Python3.5.2 官方文档re模块中sub函数的定义是:
re.sub(pattern, repl, string, count=0, flags=0)
在字符串 string
在Python中,你可以使用多种方法来提取特定的字符串。以下是一些常用的方法:
1. 使用字符串的索引:如果你知道要提取的字符串的位置,你可以使用索引来获取它。例如,如果你要提取字符串的第一个字符,可以使用 `string[0]`。
2. 使用切片(slicing):切片是一种获取字符串的子集的方法。你可以使用 `string[start:end]` 的语法来获取从 `start` 索引到 `end` 索引之间的子字符串。注意,`start` 索引是包含在结果中的,而 `end` 索引是不包含在结果中的。
3. 使用正则表达式:如果你需要根据某种模式来提取字符串,你可以使用正则表达式。Python的 `re` 模块提供了处理正则表达式的功能。
这只是提取特定字符串的几种常见方法,具体使用哪种方法取决于你的需求。如果你能提供更具体的要求,我可以给你提供更详细的代码示例。