regex - 如何检查字符串是否包含一组条件

标签 regex string list vim

我想检查一个字符串是否包含一组条件:

体育运动

let myvar = '.....'  
if myvar doesn't contain:   

- 'cos'
- or 'sin'
- or 'tan'
- or 'log'
- or only contains of this: [0-9*/:-+<space>]
- or ... etc 

give an error message.

我想将所有条件放在一个列表中并检查字符串是否 具有以下条件之一。
如果字符串不具备这些条件之一,则给出错误消息。

谁能帮我找到正确的正则表达式?

最佳答案

我建议使用match()函数

function! Test(s)
    if match(a:s, '\<\(cos\|sin\|tan\|log\)\>') < 0
        echo "functions not matched"
    endif
    if match(a:s, '^[0-9*\\\/:+\- ]*$') >= 0
        echo "only numerics and operators"
    endif
endf

希望这个使用示例有所帮助。测试一下

:call Test('123 * 38 - 04 : 7 + 1269')
:call Test('biological')
:call Test('log(x)')

关于regex - 如何检查字符串是否包含一组条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10478975/

相关文章:

javascript - javascript 中的正则表达式遇到问题

java - android中如何设置字符串字符编码

java - 在带空格的行上显示用户输入的 int 值

python - 如何只读取python中字符串列表的一部分

python - 将对象列表的字符串表示形式转换回 python 中的列表

c# - 如何从另一个列表中删除列表中的字符串?

html - 去除除链接之外的所有 HTML 标签

regex - 以星号*开头的Perl标识符代表什么?

c - 在 C 中使用正则表达式时,\d 不起作用,但 [0-9] 起作用

python - 从字符串中删除括号和特殊字符并转换列表(值以逗号分隔)