Python Forum
Please support regex for version number (digits and dots) from a string
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Please support regex for version number (digits and dots) from a string
#1
Hello Community,

I have the following string

"SYS"."M_SYSTEM_OVERVIEW" ('System', 'Version', '', '2.00.050.00.1592305219 (fa/hana2sp05)')
I need the version information
2.00.050.00.1592305219
from that string.

I tried several things via regex but all failed. One of my ideas was to use the first part until the version number as a own group.
m = re.search('("SYS"."M_SYSTEM_OVERVIEW" \(\'System\', \'Version\', \'\', \')(\S+)(.+)', line)
Version =  m.group(2)
This lead to an AttributeError: 'NoneType' object has no attribute 'group'
How should I design patterns to get this?
Also I am not sure when to escape in that string and when not.

Can someone please assist.

Regards

--Christian
Reply
#2
What's the purpose for parsing it? There are a couple of tools that can be used to compare "version-like" strings. 'packaging.version' is probably the standard parser.
Reply
#3
Hello bowlofred,

I am analyzing several files with different kind of information with a Python script. One part is to get this version information.

Regards

--Christian
Reply
#4
i usually avoid regex unless absolutely required. Here it is not because you can parse the string through process of elimination. And based on the fact that your regex string contains this in every file.

s = '''"SYS"."M_SYSTEM_OVERVIEW" ('System', 'Version', '', '2.00.050.00.1592305219 (fa/hana2sp05)')'''
version = s.split(',')[3].split(' ')[1].strip("'")
print(version)
outputs from elimination to final desired output. From why each index was selected from a certain split character
Output:
metulburr@metulburr:~$ python3 test2.py ['"SYS"."M_SYSTEM_OVERVIEW" (\'System\'', " 'Version'", " ''", " '2.00.050.00.1592305219 (fa/hana2sp05)')"] metulburr@metulburr:~$ python3 test2.py '2.00.050.00.1592305219 (fa/hana2sp05)') metulburr@metulburr:~$ python3 test2.py ['', "'2.00.050.00.1592305219", "(fa/hana2sp05)')"] metulburr@metulburr:~$ python3 test2.py '2.00.050.00.1592305219 metulburr@metulburr:~$ python3 test2.py 2.00.050.00.1592305219
The only thing that has to be added is obtaining the original string section from the file which could be different based on what the content of the file contains. You would have to find something unique in that string in comparison to parse out the rest of the file. Or for example if it has 1000 commas in the file, the index could be 98 instead of 3, etc.
Recommended Tutorials:
Reply
#5
Hello metullburr,

thank you for your answer and taking time.

This one works.

I have slept a few nights over this. I found a solution with regex.

import re

s = '''"SYS"."M_SYSTEM_OVERVIEW" ('System', 'Version', '', '2.00.050.00.1592305219 (fa/hana2sp05)')'''
m = re.search('(Version)(\D+)(\S+)', s)
test1 = m.group(1)
test2 = m.group(2)
test3 = m.group(3)

print("string = ", s)
print("test1: ", test1)
print("test2: ", test2)
print("test3: ", test3)
This one gives me also the Version string I am looking for. I will see which solution I will use in my script.
I will mark my thread as solved.

Regards

--Christian
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  parse/read from file seperated by dots giovanne 5 1,043 Jun-26-2023, 12:26 PM
Last Post: DeaD_EyE
Question Extracting Version Number from a String britesc 2 1,030 May-31-2023, 10:20 AM
Last Post: britesc
  Finding First Digits in String giddyhead 4 1,323 Aug-17-2022, 08:12 PM
Last Post: giddyhead
  TypeError: float() argument must be a string or a number, not 'list' Anldra12 2 4,764 Jul-01-2022, 01:23 PM
Last Post: deanhystad
Photo How can I use 2 digits format for all the number? plumberpy 6 2,300 Aug-09-2021, 02:16 PM
Last Post: plumberpy
  Regex: a string does not starts and ends with the same character Melcu54 5 2,368 Jul-04-2021, 07:51 PM
Last Post: Melcu54
  TypeError: int() argument must be a string, a bytes-like object or a number, not 'Non Anldra12 2 5,108 May-02-2021, 03:45 PM
Last Post: Anldra12
  cursor.execute: How to insert dynamic number in a string? stoeberhai 2 3,447 Mar-18-2021, 12:55 PM
Last Post: stoeberhai
  Regular expression: cannot find 1st number in a string Pavel_47 2 2,365 Jan-15-2021, 04:39 PM
Last Post: bowlofred
  Help getting a string out of regex matt_the_hall 4 2,220 Dec-02-2020, 01:49 AM
Last Post: matt_the_hall

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020