正则表达式用于解析每行的第一个字符?

这是列表:

Work
Work
Fire
Global

我想从中提取字符串WWFG[(?).*\n]只给 我 Global。我应该使用什么?

为了上下文,我正在使用Rainmeter的webparser插件。

点赞
用户1548853
用户1548853

你需要使用一个带有多行标志的 anchor。我会使用:/^(.)/gm (语法在不同的语言中有所不同)

在这里查看示例: http://regex101.com/r/uC1gV5

2012-11-21 16:33:01
用户925913
用户925913

最简单的方法取决于你使用的编程语言,但你想要用以下代码替换:

(.).*\n

代码替换如下:

$1
2012-11-21 16:33:52
用户402884
用户402884

我不知道你在用什么语言,但这里是一些 Python!

>>> import re
>>> ''.join(re.findall("(.).*", "Work\nWork\nFire\nGlobal"))
'WWFG'

将上面代码中 Python 的 .join() 方法换成 Python 中字符串的连接方法 +,一样的输出结果是什么?

>>> import re
>>> result = ''
>>> for i in re.findall("(.).*", "Work\nWork\nFire\nGlobal"):
...     result += i
...
>>> result
'WWFG'
2012-11-21 16:44:10
用户1425848
用户1425848

这将从每一行中捕获第一个字符

([a-z])[^\n]+\n*

\1$1替换

根据文本内容,您可能需要将[a-z]更改为更全面的内容

2012-11-21 16:45:06
用户1847592
用户1847592

尝试这个: (?simU)^(.)

RainRegExp似乎缺少替换功能,所以无法将所有捕获连接成一个字符串。

2012-11-23 13:05:17
用户107090
用户107090

如果你在使用 Lua,尝试使用 s:gsub("(.).-\n","%1")

2012-11-23 13:38:55
用户1266650
用户1266650
(?siU)(?(?=.)(.))(?(?=.*\n).*\n(.))(?(?=.*\n).*\n(.))(?(?=.*\n).*\n(.))

该正则表达式已在Rainmeter中成功使用,本来回答已在这里给出:Answered by @moshi here.

2012-11-23 13:55:25