我需要在一个长文本字符串中找到几个可选变量。这似乎是一个简单的问题,但我希望有一个更简单的解决方案,我得到的。
我需要在ADD部分找到前10个字符(简单)12345 abcde和变量AA 1ab 12和AA 2abc 123(如果它们存在):
12345abcdeADDAA1ab12
12345abcdeADDxyzAA1ab12
12345abcdeADDxyzAA1ab12xyz
12345abcdeADDAA2abc123
12345abcdeADDAA1ab12xyAA2abc123
12345abcdeADDAA1ab12xAA2abc123y
12345abcdeADDxAA1ab12xAA2abc123y
12345abcdeADDxAA2abc123xAA1ab12y
下面是一个简化的示例和解决方案,但我担心它需要许多步骤来应用并导致性能问题:
- 我需要检索前10个字符和变量AA 1和AA 2,如果它们存在于ADD部分。https://regex101.com/r/hapeTs/1
我尝试在(^(.{10})(?:(?:ADD).*?(AA1.{4})?.*?(AA2.{6})?.*?)?$)
和其他一些选项之间添加一个Laziness字符串,但没有成功。
- 真实的应用问题:从天气NOAA ISD原始格式数据集获取8个可选变量:https://regex101.com/r/E462bd/1
也许我错过了一个正则表达式功能
谢谢你的帮助!
1条答案
按热度按时间6qftjkof1#
您可以通过Assert结束值为,
$
[A-Z]{2}\d
下面是一个使用 Python 的例子。
输出