Python strings are sequences of characters that represent information or data. Normal strings can contain various characters enclosed in single or double quotes, but alphanumeric strings contain only digits and letters. Both alphanumeric and non-alphanumeric strings are used and applied in various scenarios, including password protection, data processing and verification, formatting, etc.
Specific patterns can be identified and extracted. We can also provide different combinations using these types of strings. We will perform operations based on these strings. Our task is to extract the string until the first non-alphanumeric character is encountered.
We must extract the substring from the original string before encountering non-alphanumeric characters. Let us understand this through an example.
Let us consider a dictionary with the following values -
Input: Inp_STR = "Sales18@22!Roam"
The given string consists of letters, numbers and special characters. Once we encounter a non-alphanumeric character, we have to retrieve the substring.
Output: Sales18
We can see that a substring "Sales18" is returned from the original string because after this a non-alphanumeric character is encountered, namely "@". Now that we understand the problem statement, let's discuss some solutions.
This is the basic and simpler way to extract a string based on the provided conditions. We will pass a string and create a new variable which will store all alphanumeric characters i.e. letters (upper and lower case) and numbers. After that, we will go through the original string and iterate over each character.
We will build a condition to check if the characters in the original string are alphanumeric. Once a non-alphanumeric character is encountered, the loop breaks and returns the substring.
The following is an example of extracting a string until the first non-alphanumeric character -
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = "" alphaNum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" for x in Inp_STR: if x not in alphaNum: break else: ExSTR += x print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
Regex module or "re" module is a powerful programming tool for searching and matching patterns. These patterns are passed in the form of unique expressions. Using this module, we will detect non-alphanumeric patterns in raw strings and retrieve the first encountered sequence. We use the "search()" function to search a string for a non-alphanumeric pattern represented by the expression "\W ".
"\W" indicates non-alphanumeric classes, and " " sets the continuous matching logic for non-alphanumeric characters. The ".start()" method returns the starting index of the matching substring, which index value will be used to retrieve the desired substring.
The following is an example -
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.search(r"\W+", Inp_STR).start() print(f"The 1st non-alphanumeric character is encountered at: {ExSTR}") ExSTR = Inp_STR[ : ExSTR] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
This is another way to extract the string until the first non-alphanumeric character is encountered. In this approach, we will use the "findall()" function from the re module to find all occurrences of a substring consisting of alphanumeric characters.
will get a list of matching substrings and we will retrieve the first substring using the "0" index value. We will use the regular expression: "[\dA-Za-z]*", which represents zero or more alphanumeric characters in a line.
The regular expression symbol "\d" matches any number between 0 and 9, "A-Z" matches any uppercase letter between A and Z, " a-z< /b>" matches any lowercase letter between a and z.
The following is an example -
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.findall(r"[\dA-Za-z]*", Inp_STR)[0] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
In this method, we will iterate the index of each character in the original string and build a condition to check if the character at index "x" is not alphanumeric. This is done with the help of the "isalnum()" method which determines the alphanumeric nature of the string. After that we will use list slicing to extract the string until the first alphanumeric character.
The following is an example -
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") for x in range(len(Inp_STR)): if not Inp_STR[x].isalnum(): ExSTR = Inp_STR[:x] print(f"The 1st non-alphanumeric character is encountered at: {x}") break else: ExSTR = Inp_STR print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
In this article, we discussed some efficient and optimized solutions for extracting substrings from strings when the first non-alphanumeric character is encountered. We understand simple and crude solutions as well as advanced and optimized solutions. We use the regular expression module and use its "search()" and "findall()" functions to extract relevant strings. Finally, we discussed another solution based on list slicing, which involves using the "isalnum()" method.
The above is the detailed content of Python program to extract string until first non-alphanumeric character. For more information, please follow other related articles on the PHP Chinese website!