Files
daxcay-ComfyUI-JDCN/JDCN_SplitString.py
T
daxcay b5d49a1ebb Category Name Change and Making New REPO for Research tool
Decision was due to the increase of loading size of JDCN users who were not Using Reasearch nodes
2024-04-26 18:06:02 +05:30

70 lines
1.9 KiB
Python

def split_string(main_string, search_string, from_rear=False, occurrence=1, incs=False):
if from_rear:
index = main_string.rfind(search_string)
else:
index = main_string.find(search_string)
if index == -1:
return main_string, "", -1
for _ in range(occurrence - 1):
if from_rear:
index = main_string.rfind(search_string, 0, index)
else:
index = main_string.find(search_string, index + len(search_string))
if index == -1:
return main_string, "", -1
front = main_string[:index]
rear = main_string[index + len(search_string):]
if incs:
front += search_string
return front, rear, index
class JDCN_SplitString:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"MainString": ("STRING", {"forceInput": True}),
"SearchFor": ("STRING", {}),
"StartFrom": (['front', 'rear'],),
"Occurence": ("INT", {"default": 1, "min": 1, "max": 9999}),
"IncludeSearchFor": ("BOOLEAN", {"default": False}),
},
}
RETURN_TYPES = ("STRING", "STRING", "INT")
RETURN_NAMES = ("Suffix", "Prefix", "FoundAt")
FUNCTION = "dosplitit"
CATEGORY = "🔵 JDCN 🔵"
def dosplitit(self, MainString, SearchFor, StartFrom, Occurence, IncludeSearchFor):
if len(MainString) == 0:
return ("", "", 0)
if len(SearchFor) == 0:
return ("", "", 0)
from_rear = False
if StartFrom == "rear":
from_rear = True
suffix, prefix, foundat = split_string(MainString, SearchFor, from_rear, Occurence, IncludeSearchFor)
return (suffix, prefix, foundat)
N_CLASS_MAPPINGS = {
"JDCN_SplitString": JDCN_SplitString,
}
N_DISPLAY_NAME_MAPPINGS = {
"JDCN_SplitString": "JDCN_SplitString",
}