How do I select the random text that is after a fixed text using Python? For Example "AWB NO 56454546" where "AWB NO" is fixed text while "56454546" is random text.
How do I select the random text that is after a fixed text using Python? For Example "AWB NO 56454546" where "AWB NO" is fixed text while "56454546" is random text.
You can use the partition
method for this. It's part of the built-in str
type.
>>> help(str.partition)partition(self, sep, /)Partition the string into three parts using the given separator.This will search for the separator in the string. If the separator is found,returns a 3-tuple containing the part before the separator, the separatoritself, and the part after it.If the separator is not found, returns a 3-tuple containing the original stringand two empty strings.
If you use "AWB No: "
as the separator, you'll get back a 3-tuple containing:
"AWB No: "
e.g. "Courier "
"AWB No: "
"AWB No: "
: "56454546"
So you can get that "everything after" part in two ways:
input_str = "Courier AWB No: 56454546"
sep = "AWB No: "
before, sep, after = input_str.partition(sep)
# == "Courier ", "AWB No: ", "56454546"# or
after = input_str.partition(sep)[2]# either way: after == "56454546"
If there are more words after the number you can get rid of them with .split()[0]
:
input_str = "Courier AWB No: 56454546 correct horse battery staple"
sep = "AWB No: "
after = input_str.partition(sep)[2]
awb_no = after.split()[0]# after == "56454546"
Or in one line:
input_str = "Courier AWB No: 56454546 correct horse battery staple"
awb_no = input_str.partition("AWB No: ")[2].split()[0]