【发布时间】:2020-04-27 03:29:55
【问题描述】:
我在 python 中编写了一个脚本,它的功能完全符合我的需要,但它看起来不像 Google Apps 脚本在文档中具有正则表达式完全匹配方法。本质上,我有一个用户输入的字符串,我想验证该字符串是否完全匹配正则表达式; “完全匹配”。我对 Google Apps 脚本非常熟悉,可以将 python 脚本转换为 GAS,但需要有关工作流程的帮助,并且可能针对此给定的 GAS 采用不同的逻辑方法似乎没有完全匹配可用。下面的代码是python脚本供参考。
import re
def is_valid(text, valid_styles):
good_string_found = re.fullmatch(r'(([A-Z]+)\s([0-9]+)\s-\s([0-9]+)x?;\n)+', text)
if good_string_found is None:
return False, 1
for each_item in text.split(";\n")[: len(text.split(";\n")) - 1]:
style_number, size = each_item.split(" - ")[0], each_item.split(" - ")[1]
valid_sizes = ["4","5","6","6x","7","8","10","12","14","16"]
if style_number not in valid_styles or size not in valid_sizes:
print("First error found in: " + style_number + " - " + size)
return False, 2
return True, 0
user_entry = "CS 101 - 8;\nCS 102 - 10;\nCS 104 - 6x;\n"
valid_style_numbers = ["CS 101", "CS 102", "CS 103", "CS 104"]
validity, error = is_valid(user_entry, valid_style_numbers)
if validity is False and error == 1:
print("User entered string did not:\n- Match regex expected input")
elif validity is False and error == 2:
print("User entered string did not:\n- Contain a valid style number\n- Contain a valid size")
elif validity is True:
print("Proper scan")
【问题讨论】:
-
GAS 只是 JavaScript
标签: python regex google-apps-script