python - 如何在python中解析带有国际单词的文件

标签 python regex

我的文件中包含用不同语言书写的文字。我想使用 python 编程语言解析它们,以便在所有文件中具有相同的结构。 当前文件包含类似

的行
1. word1
24. word2
- word3
word4
** word5

目标是让它们全部写成

** word

我已经从一个文件 fr 读取了一些代码,并写入了新文件 fw,如下所示

    for line in fr:
        match = re.search(r'^\*\* .*', line)
        if match:
        fw.write(line)

我有两个问题。

第一个问题。如何编写正则表达式,以便它将搜索不从字母字符开始的行并删除字母字符之前的所有内容?

我已经尝试过这样的

fw.write(re.sub(r'(^([^a-zA-Z].*)([a-zA-Z])*.*)', "** \1", line))

但它不起作用。

第二个问题。如何验证字符串是否以字母字符开头。我已经尝试过了

print line[0].isalpha()

它返回?。我需要先获得 unicode 吗?

谢谢。

最佳答案

字母的 unicode 属性为:\pL。将其替换为 [a-zA-Z]

将其用作:

^\PL*(\pL+)

这意味着第 1 组中捕获的 0 个或多个非字母后跟 1 个或多个字母。

关于python - 如何在python中解析带有国际单词的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570172/

相关文章:

python - 如何在循环外部获取 for 循环中定义的变量? -Python

ruby - 正则表达式去除除序数以外的所有数字

Python 图像库无法抓取整个屏幕

python - 如何从 jupyter 中提取整个可执行文件并清除脚本

Python - Py_Initialize 在编译期间未解析

python - TypeError : write() argument must be str, 写入文件时未列出

Python/从有异常的文件中获取唯一标记

Javascript 正则表达式仅用该替代品替换多次出现的情况

xml - 用于缩进 XML 文件的正则表达式

python - 从数据框中的每一列中查找最大值