【发布时间】:2018-02-16 03:14:35
【问题描述】:
我有一个用例需要识别任意两个字符之间的许多不同的文本。
例如,
- 单个空格和
(之间的字符串:def test()将返回test - 单词和空格之间的字符串 (
paste) 和特殊字符 (/):@paste "game_01/01"将返回"game_01 - 在单个空格和
(之间的字符串,带有多个目标字符串:} def test2() { Hello(x, 1)将返回test2和Hello
为此,我正在尝试编写一些通用的东西来识别任意两个字符之间的最短字符串。
我目前的做法是(来自 chrisz):
pattern = '{0}(.*?){1}'.format(re.escape(separator_1), re.escape(separator_2))
对于第一个用例,separator_1 = \s 和 separator_2 = (。这显然不起作用,我错过了一些东西,但不确定是什么。
tl;dr如何编写通用正则表达式来解析任意两个字符之间的最短字符串?
- 注意:我知道有很多这样的例子,但它们看起来很具体,如果可能的话,我正在寻找一个通用的解决方案。
【问题讨论】:
-
"This is not working" 究竟是什么意思?有错误信息吗?它不会产生您期望的输出吗?
-
这不是免费的编码服务、免费的教程服务或免费的设计服务。
-
@Aran-Fey 它不会产生我希望的结果。例如,目标字符串之前会包含一个空格,有时是字符(例如`test
) characters after the string will be included (e.g.test()`) -
你必须使用正则表达式吗?为什么不写一个简单的函数呢?
-
@FatihAkici 实际上我不必这样做,但我认为这会更简单、更通用并且也很想知道解决方案是什么