帆张芳显 2024-12-05 21:09 采纳率: 33.3%
浏览 12

需要写一个匹配操作符的正则表达式

LEN("2024-12")-today('yyyy-mm-dd')+1100/2-2%2
有没有人能帮忙写一个正则,匹配 +-
/%等操作符,但要排除“”或''或``者之间的作为特定字符使用的情况。

  • 写回答

3条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    为了匹配操作符的正则表达式,并且排除双引号、单引号或反引号内的特定字符作为操作符使用的情况,你可以使用以下的正则表达式:

    (?:(?<!['"`])[-+*/%&])|(?<=["'`])(?=\D)(?=["'`])
    

    这个正则表达式的含义如下:

    • (?:(?<!['"])[-+/%&]):匹配非引号内的操作符。这里使用了负向后断言 (?<!...)来确保操作符前后不是引号字符。操作符包括-(减号)、+(加号)、(乘号)、/(除号)、%(取余符号)和 &`(取与符号)。注意这里的顺序可以按需调整。
    • |:逻辑或符号,用于匹配上述操作符或者接下来的模式。
    • (?<=["'])(?=\D)(?=["']):匹配引号内的非数字字符。这里使用了正向后断言 (?<=...) 和负向后断言 (?=...) 来确保匹配的是引号内的非数字字符。\D 表示非数字字符。这部分是为了捕获引号内的特殊字符,但它们不会被视为操作符。如果只想排除引号本身而不考虑它们内部的内容,可以忽略这部分。

    请注意,这个正则表达式假定操作数(数字和变量等)不会包含引号字符,并且操作符不会在字符串内部作为单独的字符出现。如果操作数可能包含引号字符或者操作符可能出现在字符串内部作为特定字符使用的情况更复杂,可能需要更复杂的正则表达式来处理这种情况。如果实际应用中情况比较复杂,可能需要调整正则表达式以符合实际需求。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月5日